/src/vlc/include/vlc_atomic.h
Line | Count | Source |
1 | | /***************************************************************************** |
2 | | * vlc_atomic.h: |
3 | | ***************************************************************************** |
4 | | * Copyright (C) 2010 Rémi Denis-Courmont |
5 | | * |
6 | | * This program is free software; you can redistribute it and/or modify it |
7 | | * under the terms of the GNU Lesser General Public License as published by |
8 | | * the Free Software Foundation; either version 2.1 of the License, or |
9 | | * (at your option) any later version. |
10 | | * |
11 | | * This program is distributed in the hope that it will be useful, |
12 | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | | * GNU Lesser General Public License for more details. |
15 | | * |
16 | | * You should have received a copy of the GNU Lesser General Public License |
17 | | * along with this program; if not, write to the Free Software Foundation, |
18 | | * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. |
19 | | *****************************************************************************/ |
20 | | |
21 | | #ifndef VLC_ATOMIC_H |
22 | | # define VLC_ATOMIC_H |
23 | | |
24 | | /** |
25 | | * \file |
26 | | * Atomic operations do not require locking, but they are not very powerful. |
27 | | */ |
28 | | |
29 | | # include <assert.h> |
30 | | #ifndef __cplusplus |
31 | | # include <stdatomic.h> |
32 | | #else |
33 | | # include <atomic> |
34 | | using std::atomic_uintptr_t; |
35 | | using std::memory_order_relaxed; |
36 | | using std::memory_order_acq_rel; |
37 | | #endif |
38 | | # include <vlc_common.h> |
39 | | # include <vlc_tick.h> |
40 | | |
41 | | #define VLC_STATIC_RC { \ |
42 | | .refs = (uintptr_t) 1 \ |
43 | | } |
44 | | |
45 | | typedef struct vlc_atomic_rc_t { |
46 | | atomic_uintptr_t refs; |
47 | | } vlc_atomic_rc_t; |
48 | | |
49 | | /** Init the RC to 1 */ |
50 | | static inline void vlc_atomic_rc_init(vlc_atomic_rc_t *rc) |
51 | 19.1k | { |
52 | 19.1k | #ifndef __cplusplus |
53 | 19.1k | atomic_init(&rc->refs, (uintptr_t)1); |
54 | | #else |
55 | | rc->refs = (uintptr_t)1; |
56 | | #endif |
57 | 19.1k | } Unexecuted instantiation: demux-run.c:vlc_atomic_rc_init Unexecuted instantiation: common.c:vlc_atomic_rc_init Unexecuted instantiation: var.c:vlc_atomic_rc_init Unexecuted instantiation: decoder.c:vlc_atomic_rc_init core.c:vlc_atomic_rc_init Line | Count | Source | 51 | 54 | { | 52 | 54 | #ifndef __cplusplus | 53 | 54 | atomic_init(&rc->refs, (uintptr_t)1); | 54 | | #else | 55 | | rc->refs = (uintptr_t)1; | 56 | | #endif | 57 | 54 | } |
Unexecuted instantiation: error.c:vlc_atomic_rc_init Unexecuted instantiation: aiff.c:vlc_atomic_rc_init Unexecuted instantiation: asf.c:vlc_atomic_rc_init Unexecuted instantiation: libasf.c:vlc_atomic_rc_init Unexecuted instantiation: asfpacket.c:vlc_atomic_rc_init Unexecuted instantiation: au.c:vlc_atomic_rc_init Unexecuted instantiation: avi.c:vlc_atomic_rc_init Unexecuted instantiation: libavi.c:vlc_atomic_rc_init Unexecuted instantiation: caf.c:vlc_atomic_rc_init Unexecuted instantiation: cdg.c:vlc_atomic_rc_init Unexecuted instantiation: es.c:vlc_atomic_rc_init Unexecuted instantiation: flac.c:vlc_atomic_rc_init Unexecuted instantiation: xiph_metadata.c:vlc_atomic_rc_init Unexecuted instantiation: h26x.c:vlc_atomic_rc_init Unexecuted instantiation: mjpeg.c:vlc_atomic_rc_init Unexecuted instantiation: mp4.c:vlc_atomic_rc_init Unexecuted instantiation: attachments.c:vlc_atomic_rc_init Unexecuted instantiation: heif.c:vlc_atomic_rc_init Unexecuted instantiation: essetup.c:vlc_atomic_rc_init Unexecuted instantiation: libmp4.c:vlc_atomic_rc_init Unexecuted instantiation: nsv.c:vlc_atomic_rc_init Unexecuted instantiation: ps.c:vlc_atomic_rc_init Unexecuted instantiation: pva.c:vlc_atomic_rc_init Unexecuted instantiation: sap.c:vlc_atomic_rc_init Unexecuted instantiation: smf.c:vlc_atomic_rc_init Unexecuted instantiation: subtitle.c:vlc_atomic_rc_init Unexecuted instantiation: tta.c:vlc_atomic_rc_init Unexecuted instantiation: encttml.c:vlc_atomic_rc_init Unexecuted instantiation: substtml.c:vlc_atomic_rc_init Unexecuted instantiation: ttml.c:vlc_atomic_rc_init Unexecuted instantiation: ty.c:vlc_atomic_rc_init Unexecuted instantiation: voc.c:vlc_atomic_rc_init Unexecuted instantiation: wav.c:vlc_atomic_rc_init Unexecuted instantiation: webvtt.c:vlc_atomic_rc_init Unexecuted instantiation: encvtt.c:vlc_atomic_rc_init Unexecuted instantiation: subsvtt.c:vlc_atomic_rc_init Unexecuted instantiation: xa.c:vlc_atomic_rc_init Unexecuted instantiation: a52.c:vlc_atomic_rc_init Unexecuted instantiation: copy.c:vlc_atomic_rc_init Unexecuted instantiation: dts.c:vlc_atomic_rc_init Unexecuted instantiation: h264.c:vlc_atomic_rc_init Unexecuted instantiation: hxxx_common.c:vlc_atomic_rc_init Unexecuted instantiation: hevc.c:vlc_atomic_rc_init Unexecuted instantiation: mlp.c:vlc_atomic_rc_init Unexecuted instantiation: mpeg4audio.c:vlc_atomic_rc_init Unexecuted instantiation: mpeg4video.c:vlc_atomic_rc_init Unexecuted instantiation: mpegaudio.c:vlc_atomic_rc_init Unexecuted instantiation: mpegvideo.c:vlc_atomic_rc_init Unexecuted instantiation: vc1.c:vlc_atomic_rc_init Unexecuted instantiation: rawaud.c:vlc_atomic_rc_init Unexecuted instantiation: rawvid.c:vlc_atomic_rc_init Unexecuted instantiation: file.c:vlc_atomic_rc_init Unexecuted instantiation: directory.c:vlc_atomic_rc_init Unexecuted instantiation: libxml.c:vlc_atomic_rc_init Unexecuted instantiation: ogg.c:vlc_atomic_rc_init Unexecuted instantiation: oggseek.c:vlc_atomic_rc_init Unexecuted instantiation: mkv.cpp:vlc_atomic_rc_init(vlc_atomic_rc_t*) Unexecuted instantiation: util.cpp:vlc_atomic_rc_init(vlc_atomic_rc_t*) Unexecuted instantiation: virtual_segment.cpp:vlc_atomic_rc_init(vlc_atomic_rc_t*) Unexecuted instantiation: matroska_segment.cpp:vlc_atomic_rc_init(vlc_atomic_rc_t*) Unexecuted instantiation: matroska_segment_parse.cpp:vlc_atomic_rc_init(vlc_atomic_rc_t*) Unexecuted instantiation: matroska_segment_seeker.cpp:vlc_atomic_rc_init(vlc_atomic_rc_t*) Unexecuted instantiation: demux.cpp:vlc_atomic_rc_init(vlc_atomic_rc_t*) Unexecuted instantiation: events.cpp:vlc_atomic_rc_init(vlc_atomic_rc_t*) Unexecuted instantiation: Ebml_parser.cpp:vlc_atomic_rc_init(vlc_atomic_rc_t*) Unexecuted instantiation: chapters.cpp:vlc_atomic_rc_init(vlc_atomic_rc_t*) Unexecuted instantiation: chapter_command.cpp:vlc_atomic_rc_init(vlc_atomic_rc_t*) Unexecuted instantiation: chapter_command_dvd.cpp:vlc_atomic_rc_init(vlc_atomic_rc_t*) Unexecuted instantiation: chapter_command_script.cpp:vlc_atomic_rc_init(vlc_atomic_rc_t*) Unexecuted instantiation: chapter_command_script_common.cpp:vlc_atomic_rc_init(vlc_atomic_rc_t*) Unexecuted instantiation: stream_io_callback.cpp:vlc_atomic_rc_init(vlc_atomic_rc_t*) Unexecuted instantiation: adpcm.c:vlc_atomic_rc_init Unexecuted instantiation: aes3.c:vlc_atomic_rc_init Unexecuted instantiation: araw.c:vlc_atomic_rc_init Unexecuted instantiation: g711.c:vlc_atomic_rc_init Unexecuted instantiation: lpcm.c:vlc_atomic_rc_init Unexecuted instantiation: uleaddvaudio.c:vlc_atomic_rc_init Unexecuted instantiation: rawvideo.c:vlc_atomic_rc_init Unexecuted instantiation: cc.c:vlc_atomic_rc_init Unexecuted instantiation: cea708.c:vlc_atomic_rc_init Unexecuted instantiation: cvdsub.c:vlc_atomic_rc_init Unexecuted instantiation: dvbsub.c:vlc_atomic_rc_init Unexecuted instantiation: scte18.c:vlc_atomic_rc_init Unexecuted instantiation: scte27.c:vlc_atomic_rc_init Unexecuted instantiation: spudec.c:vlc_atomic_rc_init Unexecuted instantiation: parse.c:vlc_atomic_rc_init Unexecuted instantiation: stl.c:vlc_atomic_rc_init Unexecuted instantiation: subsdec.c:vlc_atomic_rc_init Unexecuted instantiation: subsusf.c:vlc_atomic_rc_init Unexecuted instantiation: svcdsub.c:vlc_atomic_rc_init Unexecuted instantiation: textst.c:vlc_atomic_rc_init Unexecuted instantiation: substx3g.c:vlc_atomic_rc_init Unexecuted instantiation: libvlc.c:vlc_atomic_rc_init Unexecuted instantiation: media_source.c:vlc_atomic_rc_init Unexecuted instantiation: media_tree.c:vlc_atomic_rc_init Unexecuted instantiation: interface.c:vlc_atomic_rc_init Unexecuted instantiation: content.c:vlc_atomic_rc_init Unexecuted instantiation: control.c:vlc_atomic_rc_init Unexecuted instantiation: item.c:vlc_atomic_rc_init Unexecuted instantiation: notify.c:vlc_atomic_rc_init Unexecuted instantiation: player.c:vlc_atomic_rc_init Unexecuted instantiation: playlist.c:vlc_atomic_rc_init Unexecuted instantiation: preparse.c:vlc_atomic_rc_init Unexecuted instantiation: preparser.c:vlc_atomic_rc_init Unexecuted instantiation: access.c:vlc_atomic_rc_init Unexecuted instantiation: decoder_device.c:vlc_atomic_rc_init Unexecuted instantiation: decoder_helpers.c:vlc_atomic_rc_init Unexecuted instantiation: demux.c:vlc_atomic_rc_init Unexecuted instantiation: input.c:vlc_atomic_rc_init Unexecuted instantiation: meta.c:vlc_atomic_rc_init attachment.c:vlc_atomic_rc_init Line | Count | Source | 51 | 2.38k | { | 52 | 2.38k | #ifndef __cplusplus | 53 | 2.38k | atomic_init(&rc->refs, (uintptr_t)1); | 54 | | #else | 55 | | rc->refs = (uintptr_t)1; | 56 | | #endif | 57 | 2.38k | } |
Unexecuted instantiation: timer.c:vlc_atomic_rc_init Unexecuted instantiation: track.c:vlc_atomic_rc_init Unexecuted instantiation: title.c:vlc_atomic_rc_init Unexecuted instantiation: aout.c:vlc_atomic_rc_init Unexecuted instantiation: vout.c:vlc_atomic_rc_init Unexecuted instantiation: osd.c:vlc_atomic_rc_init Unexecuted instantiation: medialib.c:vlc_atomic_rc_init Unexecuted instantiation: resource.c:vlc_atomic_rc_init Unexecuted instantiation: services_discovery.c:vlc_atomic_rc_init Unexecuted instantiation: source.c:vlc_atomic_rc_init Unexecuted instantiation: stats.c:vlc_atomic_rc_init Unexecuted instantiation: stream.c:vlc_atomic_rc_init Unexecuted instantiation: stream_extractor.c:vlc_atomic_rc_init Unexecuted instantiation: stream_filter.c:vlc_atomic_rc_init Unexecuted instantiation: stream_memory.c:vlc_atomic_rc_init Unexecuted instantiation: subtitles.c:vlc_atomic_rc_init Unexecuted instantiation: dec.c:vlc_atomic_rc_init Unexecuted instantiation: filters.c:vlc_atomic_rc_init Unexecuted instantiation: meter.c:vlc_atomic_rc_init Unexecuted instantiation: output.c:vlc_atomic_rc_init Unexecuted instantiation: volume.c:vlc_atomic_rc_init Unexecuted instantiation: video_output.c:vlc_atomic_rc_init Unexecuted instantiation: video_text.c:vlc_atomic_rc_init Unexecuted instantiation: video_widgets.c:vlc_atomic_rc_init Unexecuted instantiation: vout_subpictures.c:vlc_atomic_rc_init Unexecuted instantiation: video_window.c:vlc_atomic_rc_init Unexecuted instantiation: vout_intf.c:vlc_atomic_rc_init Unexecuted instantiation: vout_wrapper.c:vlc_atomic_rc_init Unexecuted instantiation: strings.c:vlc_atomic_rc_init ancillary.c:vlc_atomic_rc_init Line | Count | Source | 51 | 1.99k | { | 52 | 1.99k | #ifndef __cplusplus | 53 | 1.99k | atomic_init(&rc->refs, (uintptr_t)1); | 54 | | #else | 55 | | rc->refs = (uintptr_t)1; | 56 | | #endif | 57 | 1.99k | } |
Unexecuted instantiation: executor.c:vlc_atomic_rc_init Unexecuted instantiation: frame.c:vlc_atomic_rc_init picture.c:vlc_atomic_rc_init Line | Count | Source | 51 | 14.7k | { | 52 | 14.7k | #ifndef __cplusplus | 53 | 14.7k | atomic_init(&rc->refs, (uintptr_t)1); | 54 | | #else | 55 | | rc->refs = (uintptr_t)1; | 56 | | #endif | 57 | 14.7k | } |
Unexecuted instantiation: picture_fifo.c:vlc_atomic_rc_init Unexecuted instantiation: picture_pool.c:vlc_atomic_rc_init Unexecuted instantiation: rcu.c:vlc_atomic_rc_init Unexecuted instantiation: renderer_discovery.c:vlc_atomic_rc_init Unexecuted instantiation: threads.c:vlc_atomic_rc_init Unexecuted instantiation: exit.c:vlc_atomic_rc_init Unexecuted instantiation: image.c:vlc_atomic_rc_init Unexecuted instantiation: objects.c:vlc_atomic_rc_init Unexecuted instantiation: filter.c:vlc_atomic_rc_init Unexecuted instantiation: filter_chain.c:vlc_atomic_rc_init Unexecuted instantiation: subpicture.c:vlc_atomic_rc_init Unexecuted instantiation: thread.c:vlc_atomic_rc_init Unexecuted instantiation: specific.c:vlc_atomic_rc_init Unexecuted instantiation: stream_output.c:vlc_atomic_rc_init Unexecuted instantiation: vlm.c:vlc_atomic_rc_init Unexecuted instantiation: vlm_event.c:vlc_atomic_rc_init Unexecuted instantiation: vlmshell.c:vlc_atomic_rc_init Unexecuted instantiation: libvlc-module.c:vlc_atomic_rc_init Unexecuted instantiation: fetcher.c:vlc_atomic_rc_init Unexecuted instantiation: es_out.c:vlc_atomic_rc_init Unexecuted instantiation: es_out_source.c:vlc_atomic_rc_init Unexecuted instantiation: es_out_timeshift.c:vlc_atomic_rc_init Unexecuted instantiation: display.c:vlc_atomic_rc_init Unexecuted instantiation: interlacing.c:vlc_atomic_rc_init Unexecuted instantiation: snapshot.c:vlc_atomic_rc_init Unexecuted instantiation: input_clock.c:vlc_atomic_rc_init |
58 | | |
59 | | /** Increment the RC */ |
60 | | static inline void vlc_atomic_rc_inc(vlc_atomic_rc_t *rc) |
61 | 1.99k | { |
62 | 1.99k | uintptr_t prev = atomic_fetch_add_explicit(&rc->refs, (uintptr_t)1, |
63 | 1.99k | memory_order_relaxed); |
64 | 1.99k | vlc_assert(prev); |
65 | 1.99k | VLC_UNUSED(prev); |
66 | 1.99k | } Unexecuted instantiation: demux-run.c:vlc_atomic_rc_inc Unexecuted instantiation: common.c:vlc_atomic_rc_inc Unexecuted instantiation: var.c:vlc_atomic_rc_inc Unexecuted instantiation: decoder.c:vlc_atomic_rc_inc Unexecuted instantiation: core.c:vlc_atomic_rc_inc Unexecuted instantiation: error.c:vlc_atomic_rc_inc Unexecuted instantiation: aiff.c:vlc_atomic_rc_inc Unexecuted instantiation: asf.c:vlc_atomic_rc_inc Unexecuted instantiation: libasf.c:vlc_atomic_rc_inc Unexecuted instantiation: asfpacket.c:vlc_atomic_rc_inc Unexecuted instantiation: au.c:vlc_atomic_rc_inc Unexecuted instantiation: avi.c:vlc_atomic_rc_inc Unexecuted instantiation: libavi.c:vlc_atomic_rc_inc Unexecuted instantiation: caf.c:vlc_atomic_rc_inc Unexecuted instantiation: cdg.c:vlc_atomic_rc_inc Unexecuted instantiation: es.c:vlc_atomic_rc_inc Unexecuted instantiation: flac.c:vlc_atomic_rc_inc Unexecuted instantiation: xiph_metadata.c:vlc_atomic_rc_inc Unexecuted instantiation: h26x.c:vlc_atomic_rc_inc Unexecuted instantiation: mjpeg.c:vlc_atomic_rc_inc Unexecuted instantiation: mp4.c:vlc_atomic_rc_inc Unexecuted instantiation: attachments.c:vlc_atomic_rc_inc Unexecuted instantiation: heif.c:vlc_atomic_rc_inc Unexecuted instantiation: essetup.c:vlc_atomic_rc_inc Unexecuted instantiation: libmp4.c:vlc_atomic_rc_inc Unexecuted instantiation: nsv.c:vlc_atomic_rc_inc Unexecuted instantiation: ps.c:vlc_atomic_rc_inc Unexecuted instantiation: pva.c:vlc_atomic_rc_inc Unexecuted instantiation: sap.c:vlc_atomic_rc_inc Unexecuted instantiation: smf.c:vlc_atomic_rc_inc Unexecuted instantiation: subtitle.c:vlc_atomic_rc_inc Unexecuted instantiation: tta.c:vlc_atomic_rc_inc Unexecuted instantiation: encttml.c:vlc_atomic_rc_inc Unexecuted instantiation: substtml.c:vlc_atomic_rc_inc Unexecuted instantiation: ttml.c:vlc_atomic_rc_inc Unexecuted instantiation: ty.c:vlc_atomic_rc_inc Unexecuted instantiation: voc.c:vlc_atomic_rc_inc Unexecuted instantiation: wav.c:vlc_atomic_rc_inc Unexecuted instantiation: webvtt.c:vlc_atomic_rc_inc Unexecuted instantiation: encvtt.c:vlc_atomic_rc_inc Unexecuted instantiation: subsvtt.c:vlc_atomic_rc_inc Unexecuted instantiation: xa.c:vlc_atomic_rc_inc Unexecuted instantiation: a52.c:vlc_atomic_rc_inc Unexecuted instantiation: copy.c:vlc_atomic_rc_inc Unexecuted instantiation: dts.c:vlc_atomic_rc_inc Unexecuted instantiation: h264.c:vlc_atomic_rc_inc Unexecuted instantiation: hxxx_common.c:vlc_atomic_rc_inc Unexecuted instantiation: hevc.c:vlc_atomic_rc_inc Unexecuted instantiation: mlp.c:vlc_atomic_rc_inc Unexecuted instantiation: mpeg4audio.c:vlc_atomic_rc_inc Unexecuted instantiation: mpeg4video.c:vlc_atomic_rc_inc Unexecuted instantiation: mpegaudio.c:vlc_atomic_rc_inc Unexecuted instantiation: mpegvideo.c:vlc_atomic_rc_inc Unexecuted instantiation: vc1.c:vlc_atomic_rc_inc Unexecuted instantiation: rawaud.c:vlc_atomic_rc_inc Unexecuted instantiation: rawvid.c:vlc_atomic_rc_inc Unexecuted instantiation: file.c:vlc_atomic_rc_inc Unexecuted instantiation: directory.c:vlc_atomic_rc_inc Unexecuted instantiation: libxml.c:vlc_atomic_rc_inc Unexecuted instantiation: ogg.c:vlc_atomic_rc_inc Unexecuted instantiation: oggseek.c:vlc_atomic_rc_inc Unexecuted instantiation: mkv.cpp:vlc_atomic_rc_inc(vlc_atomic_rc_t*) Unexecuted instantiation: util.cpp:vlc_atomic_rc_inc(vlc_atomic_rc_t*) Unexecuted instantiation: virtual_segment.cpp:vlc_atomic_rc_inc(vlc_atomic_rc_t*) Unexecuted instantiation: matroska_segment.cpp:vlc_atomic_rc_inc(vlc_atomic_rc_t*) Unexecuted instantiation: matroska_segment_parse.cpp:vlc_atomic_rc_inc(vlc_atomic_rc_t*) Unexecuted instantiation: matroska_segment_seeker.cpp:vlc_atomic_rc_inc(vlc_atomic_rc_t*) Unexecuted instantiation: demux.cpp:vlc_atomic_rc_inc(vlc_atomic_rc_t*) Unexecuted instantiation: events.cpp:vlc_atomic_rc_inc(vlc_atomic_rc_t*) Unexecuted instantiation: Ebml_parser.cpp:vlc_atomic_rc_inc(vlc_atomic_rc_t*) Unexecuted instantiation: chapters.cpp:vlc_atomic_rc_inc(vlc_atomic_rc_t*) Unexecuted instantiation: chapter_command.cpp:vlc_atomic_rc_inc(vlc_atomic_rc_t*) Unexecuted instantiation: chapter_command_dvd.cpp:vlc_atomic_rc_inc(vlc_atomic_rc_t*) Unexecuted instantiation: chapter_command_script.cpp:vlc_atomic_rc_inc(vlc_atomic_rc_t*) Unexecuted instantiation: chapter_command_script_common.cpp:vlc_atomic_rc_inc(vlc_atomic_rc_t*) Unexecuted instantiation: stream_io_callback.cpp:vlc_atomic_rc_inc(vlc_atomic_rc_t*) Unexecuted instantiation: adpcm.c:vlc_atomic_rc_inc Unexecuted instantiation: aes3.c:vlc_atomic_rc_inc Unexecuted instantiation: araw.c:vlc_atomic_rc_inc Unexecuted instantiation: g711.c:vlc_atomic_rc_inc Unexecuted instantiation: lpcm.c:vlc_atomic_rc_inc Unexecuted instantiation: uleaddvaudio.c:vlc_atomic_rc_inc Unexecuted instantiation: rawvideo.c:vlc_atomic_rc_inc Unexecuted instantiation: cc.c:vlc_atomic_rc_inc Unexecuted instantiation: cea708.c:vlc_atomic_rc_inc Unexecuted instantiation: cvdsub.c:vlc_atomic_rc_inc Unexecuted instantiation: dvbsub.c:vlc_atomic_rc_inc Unexecuted instantiation: scte18.c:vlc_atomic_rc_inc Unexecuted instantiation: scte27.c:vlc_atomic_rc_inc Unexecuted instantiation: spudec.c:vlc_atomic_rc_inc Unexecuted instantiation: parse.c:vlc_atomic_rc_inc Unexecuted instantiation: stl.c:vlc_atomic_rc_inc Unexecuted instantiation: subsdec.c:vlc_atomic_rc_inc Unexecuted instantiation: subsusf.c:vlc_atomic_rc_inc Unexecuted instantiation: svcdsub.c:vlc_atomic_rc_inc Unexecuted instantiation: textst.c:vlc_atomic_rc_inc Unexecuted instantiation: substx3g.c:vlc_atomic_rc_inc Unexecuted instantiation: libvlc.c:vlc_atomic_rc_inc Unexecuted instantiation: media_source.c:vlc_atomic_rc_inc Unexecuted instantiation: media_tree.c:vlc_atomic_rc_inc Unexecuted instantiation: interface.c:vlc_atomic_rc_inc Unexecuted instantiation: content.c:vlc_atomic_rc_inc Unexecuted instantiation: control.c:vlc_atomic_rc_inc Unexecuted instantiation: item.c:vlc_atomic_rc_inc Unexecuted instantiation: notify.c:vlc_atomic_rc_inc Unexecuted instantiation: player.c:vlc_atomic_rc_inc Unexecuted instantiation: playlist.c:vlc_atomic_rc_inc Unexecuted instantiation: preparse.c:vlc_atomic_rc_inc Unexecuted instantiation: preparser.c:vlc_atomic_rc_inc Unexecuted instantiation: access.c:vlc_atomic_rc_inc Unexecuted instantiation: decoder_device.c:vlc_atomic_rc_inc Unexecuted instantiation: decoder_helpers.c:vlc_atomic_rc_inc Unexecuted instantiation: demux.c:vlc_atomic_rc_inc Unexecuted instantiation: input.c:vlc_atomic_rc_inc Unexecuted instantiation: meta.c:vlc_atomic_rc_inc Unexecuted instantiation: attachment.c:vlc_atomic_rc_inc Unexecuted instantiation: timer.c:vlc_atomic_rc_inc Unexecuted instantiation: track.c:vlc_atomic_rc_inc Unexecuted instantiation: title.c:vlc_atomic_rc_inc Unexecuted instantiation: aout.c:vlc_atomic_rc_inc Unexecuted instantiation: vout.c:vlc_atomic_rc_inc Unexecuted instantiation: osd.c:vlc_atomic_rc_inc Unexecuted instantiation: medialib.c:vlc_atomic_rc_inc Unexecuted instantiation: resource.c:vlc_atomic_rc_inc Unexecuted instantiation: services_discovery.c:vlc_atomic_rc_inc Unexecuted instantiation: source.c:vlc_atomic_rc_inc Unexecuted instantiation: stats.c:vlc_atomic_rc_inc Unexecuted instantiation: stream.c:vlc_atomic_rc_inc Unexecuted instantiation: stream_extractor.c:vlc_atomic_rc_inc Unexecuted instantiation: stream_filter.c:vlc_atomic_rc_inc Unexecuted instantiation: stream_memory.c:vlc_atomic_rc_inc Unexecuted instantiation: subtitles.c:vlc_atomic_rc_inc Unexecuted instantiation: dec.c:vlc_atomic_rc_inc Unexecuted instantiation: filters.c:vlc_atomic_rc_inc Unexecuted instantiation: meter.c:vlc_atomic_rc_inc Unexecuted instantiation: output.c:vlc_atomic_rc_inc Unexecuted instantiation: volume.c:vlc_atomic_rc_inc Unexecuted instantiation: video_output.c:vlc_atomic_rc_inc Unexecuted instantiation: video_text.c:vlc_atomic_rc_inc Unexecuted instantiation: video_widgets.c:vlc_atomic_rc_inc Unexecuted instantiation: vout_subpictures.c:vlc_atomic_rc_inc Unexecuted instantiation: video_window.c:vlc_atomic_rc_inc Unexecuted instantiation: vout_intf.c:vlc_atomic_rc_inc Unexecuted instantiation: vout_wrapper.c:vlc_atomic_rc_inc Unexecuted instantiation: strings.c:vlc_atomic_rc_inc ancillary.c:vlc_atomic_rc_inc Line | Count | Source | 61 | 1.99k | { | 62 | 1.99k | uintptr_t prev = atomic_fetch_add_explicit(&rc->refs, (uintptr_t)1, | 63 | 1.99k | memory_order_relaxed); | 64 | 1.99k | vlc_assert(prev); | 65 | 1.99k | VLC_UNUSED(prev); | 66 | 1.99k | } |
Unexecuted instantiation: executor.c:vlc_atomic_rc_inc Unexecuted instantiation: frame.c:vlc_atomic_rc_inc Unexecuted instantiation: picture.c:vlc_atomic_rc_inc Unexecuted instantiation: picture_fifo.c:vlc_atomic_rc_inc Unexecuted instantiation: picture_pool.c:vlc_atomic_rc_inc Unexecuted instantiation: rcu.c:vlc_atomic_rc_inc Unexecuted instantiation: renderer_discovery.c:vlc_atomic_rc_inc Unexecuted instantiation: threads.c:vlc_atomic_rc_inc Unexecuted instantiation: exit.c:vlc_atomic_rc_inc Unexecuted instantiation: image.c:vlc_atomic_rc_inc Unexecuted instantiation: objects.c:vlc_atomic_rc_inc Unexecuted instantiation: filter.c:vlc_atomic_rc_inc Unexecuted instantiation: filter_chain.c:vlc_atomic_rc_inc Unexecuted instantiation: subpicture.c:vlc_atomic_rc_inc Unexecuted instantiation: thread.c:vlc_atomic_rc_inc Unexecuted instantiation: specific.c:vlc_atomic_rc_inc Unexecuted instantiation: stream_output.c:vlc_atomic_rc_inc Unexecuted instantiation: vlm.c:vlc_atomic_rc_inc Unexecuted instantiation: vlm_event.c:vlc_atomic_rc_inc Unexecuted instantiation: vlmshell.c:vlc_atomic_rc_inc Unexecuted instantiation: libvlc-module.c:vlc_atomic_rc_inc Unexecuted instantiation: fetcher.c:vlc_atomic_rc_inc Unexecuted instantiation: es_out.c:vlc_atomic_rc_inc Unexecuted instantiation: es_out_source.c:vlc_atomic_rc_inc Unexecuted instantiation: es_out_timeshift.c:vlc_atomic_rc_inc Unexecuted instantiation: display.c:vlc_atomic_rc_inc Unexecuted instantiation: interlacing.c:vlc_atomic_rc_inc Unexecuted instantiation: snapshot.c:vlc_atomic_rc_inc Unexecuted instantiation: input_clock.c:vlc_atomic_rc_inc |
67 | | |
68 | | /** Decrement the RC and return true if it reaches 0 */ |
69 | | static inline bool vlc_atomic_rc_dec(vlc_atomic_rc_t *rc) |
70 | 16.7k | { |
71 | 16.7k | uintptr_t prev = atomic_fetch_sub_explicit(&rc->refs, (uintptr_t)1, |
72 | 16.7k | memory_order_acq_rel); |
73 | 16.7k | vlc_assert(prev); |
74 | 16.7k | return prev == 1; |
75 | 16.7k | } Unexecuted instantiation: demux-run.c:vlc_atomic_rc_dec Unexecuted instantiation: common.c:vlc_atomic_rc_dec Unexecuted instantiation: var.c:vlc_atomic_rc_dec decoder.c:vlc_atomic_rc_dec Line | Count | Source | 70 | 5.15k | { | 71 | 5.15k | uintptr_t prev = atomic_fetch_sub_explicit(&rc->refs, (uintptr_t)1, | 72 | 5.15k | memory_order_acq_rel); | 73 | 5.15k | vlc_assert(prev); | 74 | 5.15k | return prev == 1; | 75 | 5.15k | } |
Unexecuted instantiation: core.c:vlc_atomic_rc_dec Unexecuted instantiation: error.c:vlc_atomic_rc_dec Unexecuted instantiation: aiff.c:vlc_atomic_rc_dec Unexecuted instantiation: asf.c:vlc_atomic_rc_dec Unexecuted instantiation: libasf.c:vlc_atomic_rc_dec Unexecuted instantiation: asfpacket.c:vlc_atomic_rc_dec Unexecuted instantiation: au.c:vlc_atomic_rc_dec Unexecuted instantiation: avi.c:vlc_atomic_rc_dec Unexecuted instantiation: libavi.c:vlc_atomic_rc_dec Unexecuted instantiation: caf.c:vlc_atomic_rc_dec Unexecuted instantiation: cdg.c:vlc_atomic_rc_dec Unexecuted instantiation: es.c:vlc_atomic_rc_dec Unexecuted instantiation: flac.c:vlc_atomic_rc_dec Unexecuted instantiation: xiph_metadata.c:vlc_atomic_rc_dec Unexecuted instantiation: h26x.c:vlc_atomic_rc_dec Unexecuted instantiation: mjpeg.c:vlc_atomic_rc_dec Unexecuted instantiation: mp4.c:vlc_atomic_rc_dec Unexecuted instantiation: attachments.c:vlc_atomic_rc_dec Unexecuted instantiation: heif.c:vlc_atomic_rc_dec Unexecuted instantiation: essetup.c:vlc_atomic_rc_dec Unexecuted instantiation: libmp4.c:vlc_atomic_rc_dec Unexecuted instantiation: nsv.c:vlc_atomic_rc_dec Unexecuted instantiation: ps.c:vlc_atomic_rc_dec Unexecuted instantiation: pva.c:vlc_atomic_rc_dec Unexecuted instantiation: sap.c:vlc_atomic_rc_dec Unexecuted instantiation: smf.c:vlc_atomic_rc_dec Unexecuted instantiation: subtitle.c:vlc_atomic_rc_dec Unexecuted instantiation: tta.c:vlc_atomic_rc_dec Unexecuted instantiation: encttml.c:vlc_atomic_rc_dec Unexecuted instantiation: substtml.c:vlc_atomic_rc_dec Unexecuted instantiation: ttml.c:vlc_atomic_rc_dec Unexecuted instantiation: ty.c:vlc_atomic_rc_dec Unexecuted instantiation: voc.c:vlc_atomic_rc_dec Unexecuted instantiation: wav.c:vlc_atomic_rc_dec Unexecuted instantiation: webvtt.c:vlc_atomic_rc_dec Unexecuted instantiation: encvtt.c:vlc_atomic_rc_dec Unexecuted instantiation: subsvtt.c:vlc_atomic_rc_dec Unexecuted instantiation: xa.c:vlc_atomic_rc_dec Unexecuted instantiation: a52.c:vlc_atomic_rc_dec Unexecuted instantiation: copy.c:vlc_atomic_rc_dec Unexecuted instantiation: dts.c:vlc_atomic_rc_dec Unexecuted instantiation: h264.c:vlc_atomic_rc_dec Unexecuted instantiation: hxxx_common.c:vlc_atomic_rc_dec Unexecuted instantiation: hevc.c:vlc_atomic_rc_dec Unexecuted instantiation: mlp.c:vlc_atomic_rc_dec Unexecuted instantiation: mpeg4audio.c:vlc_atomic_rc_dec Unexecuted instantiation: mpeg4video.c:vlc_atomic_rc_dec Unexecuted instantiation: mpegaudio.c:vlc_atomic_rc_dec Unexecuted instantiation: mpegvideo.c:vlc_atomic_rc_dec Unexecuted instantiation: vc1.c:vlc_atomic_rc_dec Unexecuted instantiation: rawaud.c:vlc_atomic_rc_dec Unexecuted instantiation: rawvid.c:vlc_atomic_rc_dec Unexecuted instantiation: file.c:vlc_atomic_rc_dec Unexecuted instantiation: directory.c:vlc_atomic_rc_dec Unexecuted instantiation: libxml.c:vlc_atomic_rc_dec Unexecuted instantiation: ogg.c:vlc_atomic_rc_dec Unexecuted instantiation: oggseek.c:vlc_atomic_rc_dec Unexecuted instantiation: mkv.cpp:vlc_atomic_rc_dec(vlc_atomic_rc_t*) Unexecuted instantiation: util.cpp:vlc_atomic_rc_dec(vlc_atomic_rc_t*) Unexecuted instantiation: virtual_segment.cpp:vlc_atomic_rc_dec(vlc_atomic_rc_t*) Unexecuted instantiation: matroska_segment.cpp:vlc_atomic_rc_dec(vlc_atomic_rc_t*) Unexecuted instantiation: matroska_segment_parse.cpp:vlc_atomic_rc_dec(vlc_atomic_rc_t*) Unexecuted instantiation: matroska_segment_seeker.cpp:vlc_atomic_rc_dec(vlc_atomic_rc_t*) Unexecuted instantiation: demux.cpp:vlc_atomic_rc_dec(vlc_atomic_rc_t*) Unexecuted instantiation: events.cpp:vlc_atomic_rc_dec(vlc_atomic_rc_t*) Unexecuted instantiation: Ebml_parser.cpp:vlc_atomic_rc_dec(vlc_atomic_rc_t*) Unexecuted instantiation: chapters.cpp:vlc_atomic_rc_dec(vlc_atomic_rc_t*) Unexecuted instantiation: chapter_command.cpp:vlc_atomic_rc_dec(vlc_atomic_rc_t*) Unexecuted instantiation: chapter_command_dvd.cpp:vlc_atomic_rc_dec(vlc_atomic_rc_t*) Unexecuted instantiation: chapter_command_script.cpp:vlc_atomic_rc_dec(vlc_atomic_rc_t*) Unexecuted instantiation: chapter_command_script_common.cpp:vlc_atomic_rc_dec(vlc_atomic_rc_t*) Unexecuted instantiation: stream_io_callback.cpp:vlc_atomic_rc_dec(vlc_atomic_rc_t*) Unexecuted instantiation: adpcm.c:vlc_atomic_rc_dec Unexecuted instantiation: aes3.c:vlc_atomic_rc_dec Unexecuted instantiation: araw.c:vlc_atomic_rc_dec Unexecuted instantiation: g711.c:vlc_atomic_rc_dec Unexecuted instantiation: lpcm.c:vlc_atomic_rc_dec Unexecuted instantiation: uleaddvaudio.c:vlc_atomic_rc_dec Unexecuted instantiation: rawvideo.c:vlc_atomic_rc_dec Unexecuted instantiation: cc.c:vlc_atomic_rc_dec Unexecuted instantiation: cea708.c:vlc_atomic_rc_dec Unexecuted instantiation: cvdsub.c:vlc_atomic_rc_dec Unexecuted instantiation: dvbsub.c:vlc_atomic_rc_dec Unexecuted instantiation: scte18.c:vlc_atomic_rc_dec Unexecuted instantiation: scte27.c:vlc_atomic_rc_dec Unexecuted instantiation: spudec.c:vlc_atomic_rc_dec Unexecuted instantiation: parse.c:vlc_atomic_rc_dec Unexecuted instantiation: stl.c:vlc_atomic_rc_dec Unexecuted instantiation: subsdec.c:vlc_atomic_rc_dec Unexecuted instantiation: subsusf.c:vlc_atomic_rc_dec Unexecuted instantiation: svcdsub.c:vlc_atomic_rc_dec Unexecuted instantiation: textst.c:vlc_atomic_rc_dec Unexecuted instantiation: substx3g.c:vlc_atomic_rc_dec Unexecuted instantiation: libvlc.c:vlc_atomic_rc_dec Unexecuted instantiation: media_source.c:vlc_atomic_rc_dec Unexecuted instantiation: media_tree.c:vlc_atomic_rc_dec Unexecuted instantiation: interface.c:vlc_atomic_rc_dec Unexecuted instantiation: content.c:vlc_atomic_rc_dec Unexecuted instantiation: control.c:vlc_atomic_rc_dec Unexecuted instantiation: item.c:vlc_atomic_rc_dec Unexecuted instantiation: notify.c:vlc_atomic_rc_dec Unexecuted instantiation: player.c:vlc_atomic_rc_dec Unexecuted instantiation: playlist.c:vlc_atomic_rc_dec Unexecuted instantiation: preparse.c:vlc_atomic_rc_dec Unexecuted instantiation: preparser.c:vlc_atomic_rc_dec Unexecuted instantiation: access.c:vlc_atomic_rc_dec Unexecuted instantiation: decoder_device.c:vlc_atomic_rc_dec Unexecuted instantiation: decoder_helpers.c:vlc_atomic_rc_dec Unexecuted instantiation: demux.c:vlc_atomic_rc_dec Unexecuted instantiation: input.c:vlc_atomic_rc_dec Unexecuted instantiation: meta.c:vlc_atomic_rc_dec attachment.c:vlc_atomic_rc_dec Line | Count | Source | 70 | 2.38k | { | 71 | 2.38k | uintptr_t prev = atomic_fetch_sub_explicit(&rc->refs, (uintptr_t)1, | 72 | 2.38k | memory_order_acq_rel); | 73 | 2.38k | vlc_assert(prev); | 74 | 2.38k | return prev == 1; | 75 | 2.38k | } |
Unexecuted instantiation: timer.c:vlc_atomic_rc_dec Unexecuted instantiation: track.c:vlc_atomic_rc_dec Unexecuted instantiation: title.c:vlc_atomic_rc_dec Unexecuted instantiation: aout.c:vlc_atomic_rc_dec Unexecuted instantiation: vout.c:vlc_atomic_rc_dec Unexecuted instantiation: osd.c:vlc_atomic_rc_dec Unexecuted instantiation: medialib.c:vlc_atomic_rc_dec Unexecuted instantiation: resource.c:vlc_atomic_rc_dec Unexecuted instantiation: services_discovery.c:vlc_atomic_rc_dec Unexecuted instantiation: source.c:vlc_atomic_rc_dec Unexecuted instantiation: stats.c:vlc_atomic_rc_dec Unexecuted instantiation: stream.c:vlc_atomic_rc_dec Unexecuted instantiation: stream_extractor.c:vlc_atomic_rc_dec Unexecuted instantiation: stream_filter.c:vlc_atomic_rc_dec Unexecuted instantiation: stream_memory.c:vlc_atomic_rc_dec Unexecuted instantiation: subtitles.c:vlc_atomic_rc_dec Unexecuted instantiation: dec.c:vlc_atomic_rc_dec Unexecuted instantiation: filters.c:vlc_atomic_rc_dec Unexecuted instantiation: meter.c:vlc_atomic_rc_dec Unexecuted instantiation: output.c:vlc_atomic_rc_dec Unexecuted instantiation: volume.c:vlc_atomic_rc_dec Unexecuted instantiation: video_output.c:vlc_atomic_rc_dec Unexecuted instantiation: video_text.c:vlc_atomic_rc_dec Unexecuted instantiation: video_widgets.c:vlc_atomic_rc_dec Unexecuted instantiation: vout_subpictures.c:vlc_atomic_rc_dec Unexecuted instantiation: video_window.c:vlc_atomic_rc_dec Unexecuted instantiation: vout_intf.c:vlc_atomic_rc_dec Unexecuted instantiation: vout_wrapper.c:vlc_atomic_rc_dec Unexecuted instantiation: strings.c:vlc_atomic_rc_dec ancillary.c:vlc_atomic_rc_dec Line | Count | Source | 70 | 1.99k | { | 71 | 1.99k | uintptr_t prev = atomic_fetch_sub_explicit(&rc->refs, (uintptr_t)1, | 72 | 1.99k | memory_order_acq_rel); | 73 | 1.99k | vlc_assert(prev); | 74 | 1.99k | return prev == 1; | 75 | 1.99k | } |
Unexecuted instantiation: executor.c:vlc_atomic_rc_dec Unexecuted instantiation: frame.c:vlc_atomic_rc_dec Unexecuted instantiation: picture.c:vlc_atomic_rc_dec Unexecuted instantiation: picture_fifo.c:vlc_atomic_rc_dec Unexecuted instantiation: picture_pool.c:vlc_atomic_rc_dec Unexecuted instantiation: rcu.c:vlc_atomic_rc_dec Unexecuted instantiation: renderer_discovery.c:vlc_atomic_rc_dec Unexecuted instantiation: threads.c:vlc_atomic_rc_dec Unexecuted instantiation: exit.c:vlc_atomic_rc_dec Unexecuted instantiation: image.c:vlc_atomic_rc_dec Unexecuted instantiation: objects.c:vlc_atomic_rc_dec Unexecuted instantiation: filter.c:vlc_atomic_rc_dec Unexecuted instantiation: filter_chain.c:vlc_atomic_rc_dec subpicture.c:vlc_atomic_rc_dec Line | Count | Source | 70 | 7.24k | { | 71 | 7.24k | uintptr_t prev = atomic_fetch_sub_explicit(&rc->refs, (uintptr_t)1, | 72 | 7.24k | memory_order_acq_rel); | 73 | 7.24k | vlc_assert(prev); | 74 | 7.24k | return prev == 1; | 75 | 7.24k | } |
Unexecuted instantiation: thread.c:vlc_atomic_rc_dec Unexecuted instantiation: specific.c:vlc_atomic_rc_dec Unexecuted instantiation: stream_output.c:vlc_atomic_rc_dec Unexecuted instantiation: vlm.c:vlc_atomic_rc_dec Unexecuted instantiation: vlm_event.c:vlc_atomic_rc_dec Unexecuted instantiation: vlmshell.c:vlc_atomic_rc_dec Unexecuted instantiation: libvlc-module.c:vlc_atomic_rc_dec Unexecuted instantiation: fetcher.c:vlc_atomic_rc_dec Unexecuted instantiation: es_out.c:vlc_atomic_rc_dec Unexecuted instantiation: es_out_source.c:vlc_atomic_rc_dec Unexecuted instantiation: es_out_timeshift.c:vlc_atomic_rc_dec Unexecuted instantiation: display.c:vlc_atomic_rc_dec Unexecuted instantiation: interlacing.c:vlc_atomic_rc_dec Unexecuted instantiation: snapshot.c:vlc_atomic_rc_dec Unexecuted instantiation: input_clock.c:vlc_atomic_rc_dec |
76 | | |
77 | | /** Returns the current reference count. |
78 | | * This is not safe to use for logic and must only be used for debugging or |
79 | | * assertion purposes */ |
80 | | static inline uintptr_t vlc_atomic_rc_get(const vlc_atomic_rc_t* rc) |
81 | 12.3k | { |
82 | | return atomic_load_explicit(&rc->refs, memory_order_relaxed); |
83 | 12.3k | } Unexecuted instantiation: demux-run.c:vlc_atomic_rc_get Unexecuted instantiation: common.c:vlc_atomic_rc_get Unexecuted instantiation: var.c:vlc_atomic_rc_get Unexecuted instantiation: decoder.c:vlc_atomic_rc_get Unexecuted instantiation: core.c:vlc_atomic_rc_get Unexecuted instantiation: error.c:vlc_atomic_rc_get Unexecuted instantiation: aiff.c:vlc_atomic_rc_get Unexecuted instantiation: asf.c:vlc_atomic_rc_get Unexecuted instantiation: libasf.c:vlc_atomic_rc_get Unexecuted instantiation: asfpacket.c:vlc_atomic_rc_get Unexecuted instantiation: au.c:vlc_atomic_rc_get Unexecuted instantiation: avi.c:vlc_atomic_rc_get Unexecuted instantiation: libavi.c:vlc_atomic_rc_get Unexecuted instantiation: caf.c:vlc_atomic_rc_get Unexecuted instantiation: cdg.c:vlc_atomic_rc_get Unexecuted instantiation: es.c:vlc_atomic_rc_get Unexecuted instantiation: flac.c:vlc_atomic_rc_get Unexecuted instantiation: xiph_metadata.c:vlc_atomic_rc_get Unexecuted instantiation: h26x.c:vlc_atomic_rc_get Unexecuted instantiation: mjpeg.c:vlc_atomic_rc_get Unexecuted instantiation: mp4.c:vlc_atomic_rc_get Unexecuted instantiation: attachments.c:vlc_atomic_rc_get Unexecuted instantiation: heif.c:vlc_atomic_rc_get Unexecuted instantiation: essetup.c:vlc_atomic_rc_get Unexecuted instantiation: libmp4.c:vlc_atomic_rc_get Unexecuted instantiation: nsv.c:vlc_atomic_rc_get Unexecuted instantiation: ps.c:vlc_atomic_rc_get Unexecuted instantiation: pva.c:vlc_atomic_rc_get Unexecuted instantiation: sap.c:vlc_atomic_rc_get Unexecuted instantiation: smf.c:vlc_atomic_rc_get Unexecuted instantiation: subtitle.c:vlc_atomic_rc_get Unexecuted instantiation: tta.c:vlc_atomic_rc_get Unexecuted instantiation: encttml.c:vlc_atomic_rc_get Unexecuted instantiation: substtml.c:vlc_atomic_rc_get Unexecuted instantiation: ttml.c:vlc_atomic_rc_get Unexecuted instantiation: ty.c:vlc_atomic_rc_get Unexecuted instantiation: voc.c:vlc_atomic_rc_get Unexecuted instantiation: wav.c:vlc_atomic_rc_get Unexecuted instantiation: webvtt.c:vlc_atomic_rc_get Unexecuted instantiation: encvtt.c:vlc_atomic_rc_get Unexecuted instantiation: subsvtt.c:vlc_atomic_rc_get Unexecuted instantiation: xa.c:vlc_atomic_rc_get Unexecuted instantiation: a52.c:vlc_atomic_rc_get Unexecuted instantiation: copy.c:vlc_atomic_rc_get Unexecuted instantiation: dts.c:vlc_atomic_rc_get Unexecuted instantiation: h264.c:vlc_atomic_rc_get Unexecuted instantiation: hxxx_common.c:vlc_atomic_rc_get Unexecuted instantiation: hevc.c:vlc_atomic_rc_get Unexecuted instantiation: mlp.c:vlc_atomic_rc_get Unexecuted instantiation: mpeg4audio.c:vlc_atomic_rc_get Unexecuted instantiation: mpeg4video.c:vlc_atomic_rc_get Unexecuted instantiation: mpegaudio.c:vlc_atomic_rc_get Unexecuted instantiation: mpegvideo.c:vlc_atomic_rc_get Unexecuted instantiation: vc1.c:vlc_atomic_rc_get Unexecuted instantiation: rawaud.c:vlc_atomic_rc_get Unexecuted instantiation: rawvid.c:vlc_atomic_rc_get Unexecuted instantiation: file.c:vlc_atomic_rc_get Unexecuted instantiation: directory.c:vlc_atomic_rc_get Unexecuted instantiation: libxml.c:vlc_atomic_rc_get Unexecuted instantiation: ogg.c:vlc_atomic_rc_get Unexecuted instantiation: oggseek.c:vlc_atomic_rc_get Unexecuted instantiation: mkv.cpp:vlc_atomic_rc_get(vlc_atomic_rc_t const*) Unexecuted instantiation: util.cpp:vlc_atomic_rc_get(vlc_atomic_rc_t const*) Unexecuted instantiation: virtual_segment.cpp:vlc_atomic_rc_get(vlc_atomic_rc_t const*) Unexecuted instantiation: matroska_segment.cpp:vlc_atomic_rc_get(vlc_atomic_rc_t const*) Unexecuted instantiation: matroska_segment_parse.cpp:vlc_atomic_rc_get(vlc_atomic_rc_t const*) Unexecuted instantiation: matroska_segment_seeker.cpp:vlc_atomic_rc_get(vlc_atomic_rc_t const*) Unexecuted instantiation: demux.cpp:vlc_atomic_rc_get(vlc_atomic_rc_t const*) Unexecuted instantiation: events.cpp:vlc_atomic_rc_get(vlc_atomic_rc_t const*) Unexecuted instantiation: Ebml_parser.cpp:vlc_atomic_rc_get(vlc_atomic_rc_t const*) Unexecuted instantiation: chapters.cpp:vlc_atomic_rc_get(vlc_atomic_rc_t const*) Unexecuted instantiation: chapter_command.cpp:vlc_atomic_rc_get(vlc_atomic_rc_t const*) Unexecuted instantiation: chapter_command_dvd.cpp:vlc_atomic_rc_get(vlc_atomic_rc_t const*) Unexecuted instantiation: chapter_command_script.cpp:vlc_atomic_rc_get(vlc_atomic_rc_t const*) Unexecuted instantiation: chapter_command_script_common.cpp:vlc_atomic_rc_get(vlc_atomic_rc_t const*) Unexecuted instantiation: stream_io_callback.cpp:vlc_atomic_rc_get(vlc_atomic_rc_t const*) Unexecuted instantiation: adpcm.c:vlc_atomic_rc_get Unexecuted instantiation: aes3.c:vlc_atomic_rc_get Unexecuted instantiation: araw.c:vlc_atomic_rc_get Unexecuted instantiation: g711.c:vlc_atomic_rc_get Unexecuted instantiation: lpcm.c:vlc_atomic_rc_get Unexecuted instantiation: uleaddvaudio.c:vlc_atomic_rc_get Unexecuted instantiation: rawvideo.c:vlc_atomic_rc_get Unexecuted instantiation: cc.c:vlc_atomic_rc_get Unexecuted instantiation: cea708.c:vlc_atomic_rc_get Unexecuted instantiation: cvdsub.c:vlc_atomic_rc_get Unexecuted instantiation: dvbsub.c:vlc_atomic_rc_get Unexecuted instantiation: scte18.c:vlc_atomic_rc_get Unexecuted instantiation: scte27.c:vlc_atomic_rc_get Unexecuted instantiation: spudec.c:vlc_atomic_rc_get Unexecuted instantiation: parse.c:vlc_atomic_rc_get Unexecuted instantiation: stl.c:vlc_atomic_rc_get Unexecuted instantiation: subsdec.c:vlc_atomic_rc_get Unexecuted instantiation: subsusf.c:vlc_atomic_rc_get Unexecuted instantiation: svcdsub.c:vlc_atomic_rc_get Unexecuted instantiation: textst.c:vlc_atomic_rc_get Unexecuted instantiation: substx3g.c:vlc_atomic_rc_get Unexecuted instantiation: libvlc.c:vlc_atomic_rc_get Unexecuted instantiation: media_source.c:vlc_atomic_rc_get Unexecuted instantiation: media_tree.c:vlc_atomic_rc_get Unexecuted instantiation: interface.c:vlc_atomic_rc_get Unexecuted instantiation: content.c:vlc_atomic_rc_get Unexecuted instantiation: control.c:vlc_atomic_rc_get Unexecuted instantiation: item.c:vlc_atomic_rc_get Unexecuted instantiation: notify.c:vlc_atomic_rc_get Unexecuted instantiation: player.c:vlc_atomic_rc_get Unexecuted instantiation: playlist.c:vlc_atomic_rc_get Unexecuted instantiation: preparse.c:vlc_atomic_rc_get Unexecuted instantiation: preparser.c:vlc_atomic_rc_get Unexecuted instantiation: access.c:vlc_atomic_rc_get Unexecuted instantiation: decoder_device.c:vlc_atomic_rc_get Unexecuted instantiation: decoder_helpers.c:vlc_atomic_rc_get Unexecuted instantiation: demux.c:vlc_atomic_rc_get Unexecuted instantiation: input.c:vlc_atomic_rc_get Unexecuted instantiation: meta.c:vlc_atomic_rc_get Unexecuted instantiation: attachment.c:vlc_atomic_rc_get Unexecuted instantiation: timer.c:vlc_atomic_rc_get Unexecuted instantiation: track.c:vlc_atomic_rc_get Unexecuted instantiation: title.c:vlc_atomic_rc_get Unexecuted instantiation: aout.c:vlc_atomic_rc_get Unexecuted instantiation: vout.c:vlc_atomic_rc_get Unexecuted instantiation: osd.c:vlc_atomic_rc_get Unexecuted instantiation: medialib.c:vlc_atomic_rc_get Unexecuted instantiation: resource.c:vlc_atomic_rc_get Unexecuted instantiation: services_discovery.c:vlc_atomic_rc_get Unexecuted instantiation: source.c:vlc_atomic_rc_get Unexecuted instantiation: stats.c:vlc_atomic_rc_get Unexecuted instantiation: stream.c:vlc_atomic_rc_get Unexecuted instantiation: stream_extractor.c:vlc_atomic_rc_get Unexecuted instantiation: stream_filter.c:vlc_atomic_rc_get Unexecuted instantiation: stream_memory.c:vlc_atomic_rc_get Unexecuted instantiation: subtitles.c:vlc_atomic_rc_get Unexecuted instantiation: dec.c:vlc_atomic_rc_get Unexecuted instantiation: filters.c:vlc_atomic_rc_get Unexecuted instantiation: meter.c:vlc_atomic_rc_get Unexecuted instantiation: output.c:vlc_atomic_rc_get Unexecuted instantiation: volume.c:vlc_atomic_rc_get Unexecuted instantiation: video_output.c:vlc_atomic_rc_get Unexecuted instantiation: video_text.c:vlc_atomic_rc_get Unexecuted instantiation: video_widgets.c:vlc_atomic_rc_get Unexecuted instantiation: vout_subpictures.c:vlc_atomic_rc_get Unexecuted instantiation: video_window.c:vlc_atomic_rc_get Unexecuted instantiation: vout_intf.c:vlc_atomic_rc_get Unexecuted instantiation: vout_wrapper.c:vlc_atomic_rc_get Unexecuted instantiation: strings.c:vlc_atomic_rc_get Unexecuted instantiation: ancillary.c:vlc_atomic_rc_get Unexecuted instantiation: executor.c:vlc_atomic_rc_get Unexecuted instantiation: frame.c:vlc_atomic_rc_get picture.c:vlc_atomic_rc_get Line | Count | Source | 81 | 12.3k | { | 82 | | return atomic_load_explicit(&rc->refs, memory_order_relaxed); | 83 | 12.3k | } |
Unexecuted instantiation: picture_fifo.c:vlc_atomic_rc_get Unexecuted instantiation: picture_pool.c:vlc_atomic_rc_get Unexecuted instantiation: rcu.c:vlc_atomic_rc_get Unexecuted instantiation: renderer_discovery.c:vlc_atomic_rc_get Unexecuted instantiation: threads.c:vlc_atomic_rc_get Unexecuted instantiation: exit.c:vlc_atomic_rc_get Unexecuted instantiation: image.c:vlc_atomic_rc_get Unexecuted instantiation: objects.c:vlc_atomic_rc_get Unexecuted instantiation: filter.c:vlc_atomic_rc_get Unexecuted instantiation: filter_chain.c:vlc_atomic_rc_get Unexecuted instantiation: subpicture.c:vlc_atomic_rc_get Unexecuted instantiation: thread.c:vlc_atomic_rc_get Unexecuted instantiation: specific.c:vlc_atomic_rc_get Unexecuted instantiation: stream_output.c:vlc_atomic_rc_get Unexecuted instantiation: vlm.c:vlc_atomic_rc_get Unexecuted instantiation: vlm_event.c:vlc_atomic_rc_get Unexecuted instantiation: vlmshell.c:vlc_atomic_rc_get Unexecuted instantiation: libvlc-module.c:vlc_atomic_rc_get Unexecuted instantiation: fetcher.c:vlc_atomic_rc_get Unexecuted instantiation: es_out.c:vlc_atomic_rc_get Unexecuted instantiation: es_out_source.c:vlc_atomic_rc_get Unexecuted instantiation: es_out_timeshift.c:vlc_atomic_rc_get Unexecuted instantiation: display.c:vlc_atomic_rc_get Unexecuted instantiation: interlacing.c:vlc_atomic_rc_get Unexecuted instantiation: snapshot.c:vlc_atomic_rc_get Unexecuted instantiation: input_clock.c:vlc_atomic_rc_get |
84 | | |
85 | | /** |
86 | | * Waits on an address. |
87 | | * |
88 | | * Puts the calling thread to sleep if a specific unsigned 32-bits value is |
89 | | * stored at a specified address. The thread will sleep until it is woken up by |
90 | | * a call to vlc_atomic_notify_one() or vlc_atomic_notify_all() in another |
91 | | * thread, or spuriously. |
92 | | * |
93 | | * If the value does not match, do nothing and return immediately. |
94 | | * |
95 | | * \param addr address to check for |
96 | | * \param val value to match at the address |
97 | | */ |
98 | | VLC_API void vlc_atomic_wait(void *addr, unsigned val); |
99 | | |
100 | | /** |
101 | | * Waits on an address with a time-out. |
102 | | * |
103 | | * This function operates as vlc_atomic_wait() but provides an additional |
104 | | * time-out. If the deadline is reached, the thread resumes and the function |
105 | | * returns. |
106 | | * |
107 | | * \param addr address to check for |
108 | | * \param val value to match at the address |
109 | | * \param deadline deadline to wait until |
110 | | * |
111 | | * \retval 0 the function was woken up before the time-out |
112 | | * \retval ETIMEDOUT the deadline was reached |
113 | | */ |
114 | | VLC_API |
115 | | int vlc_atomic_timedwait(void *addr, unsigned val, vlc_tick_t deadline); |
116 | | |
117 | | /** |
118 | | * Wakes up one thread on an address. |
119 | | * |
120 | | * Wakes up (at least) one of the thread sleeping on the specified address. |
121 | | * The address must be equal to the first parameter given by at least one |
122 | | * thread sleeping within the vlc_atomic_wait() or vlc_atomic_timedwait() |
123 | | * functions. If no threads are found, this function does nothing. |
124 | | * |
125 | | * \param addr address identifying which threads may be woken up |
126 | | */ |
127 | | VLC_API void vlc_atomic_notify_one(void *addr); |
128 | | |
129 | | /** |
130 | | * Wakes up all thread on an address. |
131 | | * |
132 | | * Wakes up all threads sleeping on the specified address (if any). |
133 | | * Any thread sleeping within a call to vlc_atomic_wait() or |
134 | | * vlc_atomic_timedwait() with the specified address as first call parameter |
135 | | * will be woken up. |
136 | | * |
137 | | * \param addr address identifying which threads to wake up |
138 | | */ |
139 | | VLC_API void vlc_atomic_notify_all(void *addr); |
140 | | |
141 | | #endif |