/src/tor/src/lib/thread/threads.h
Line | Count | Source |
1 | | /* Copyright (c) 2003-2004, Roger Dingledine |
2 | | * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. |
3 | | * Copyright (c) 2007-2021, The Tor Project, Inc. */ |
4 | | /* See LICENSE for licensing information */ |
5 | | |
6 | | /** |
7 | | * \file threads.h |
8 | | * \brief Header for threads.c |
9 | | **/ |
10 | | |
11 | | #ifndef TOR_COMPAT_THREADS_H |
12 | | #define TOR_COMPAT_THREADS_H |
13 | | |
14 | | #include "orconfig.h" |
15 | | #include "lib/cc/torint.h" |
16 | | #include "lib/testsupport/testsupport.h" |
17 | | #include "lib/lock/compat_mutex.h" |
18 | | |
19 | | #if defined(HAVE_STDATOMIC_H) && defined(STDATOMIC_WORKS) |
20 | | #define HAVE_WORKING_STDATOMIC |
21 | | #endif |
22 | | |
23 | | #ifdef HAVE_WORKING_STDATOMIC |
24 | | #include <stdatomic.h> |
25 | | #endif |
26 | | |
27 | | struct timeval; |
28 | | |
29 | | int spawn_func(void (*func)(void *), void *data); |
30 | | void spawn_exit(void) ATTR_NORETURN; |
31 | | |
32 | | unsigned long tor_get_thread_id(void); |
33 | | void tor_threads_init(void); |
34 | | |
35 | | /** Conditions need nonrecursive mutexes with pthreads. */ |
36 | | #define tor_mutex_init_for_cond(m) tor_mutex_init_nonrecursive(m) |
37 | | |
38 | | void set_main_thread(void); |
39 | | int in_main_thread(void); |
40 | | |
41 | | typedef struct tor_cond_t { |
42 | | #ifdef USE_PTHREADS |
43 | | pthread_cond_t cond; |
44 | | #elif defined(USE_WIN32_THREADS) |
45 | | CONDITION_VARIABLE cond; |
46 | | #else |
47 | | #error no known condition implementation. |
48 | | #endif /* defined(USE_PTHREADS) || ... */ |
49 | | } tor_cond_t; |
50 | | |
51 | | tor_cond_t *tor_cond_new(void); |
52 | | void tor_cond_free_(tor_cond_t *cond); |
53 | | #define tor_cond_free(c) FREE_AND_NULL(tor_cond_t, tor_cond_free_, (c)) |
54 | | int tor_cond_init(tor_cond_t *cond); |
55 | | void tor_cond_uninit(tor_cond_t *cond); |
56 | | int tor_cond_wait(tor_cond_t *cond, tor_mutex_t *mutex, |
57 | | const struct timeval *tv); |
58 | | void tor_cond_signal_one(tor_cond_t *cond); |
59 | | void tor_cond_signal_all(tor_cond_t *cond); |
60 | | |
61 | | typedef struct tor_threadlocal_t { |
62 | | #ifdef _WIN32 |
63 | | DWORD index; |
64 | | #else |
65 | | pthread_key_t key; |
66 | | #endif |
67 | | } tor_threadlocal_t; |
68 | | |
69 | | /** Initialize a thread-local variable. |
70 | | * |
71 | | * After you call this function on a tor_threadlocal_t, you can call |
72 | | * tor_threadlocal_set to change the current value of this variable for the |
73 | | * current thread, and tor_threadlocal_get to retrieve the current value for |
74 | | * the current thread. Each thread has its own value. |
75 | | **/ |
76 | | int tor_threadlocal_init(tor_threadlocal_t *threadlocal); |
77 | | /** |
78 | | * Release all resource associated with a thread-local variable. |
79 | | */ |
80 | | void tor_threadlocal_destroy(tor_threadlocal_t *threadlocal); |
81 | | /** |
82 | | * Return the current value of a thread-local variable for this thread. |
83 | | * |
84 | | * It's undefined behavior to use this function if the threadlocal hasn't |
85 | | * been initialized, or has been destroyed. |
86 | | */ |
87 | | void *tor_threadlocal_get(tor_threadlocal_t *threadlocal); |
88 | | /** |
89 | | * Change the current value of a thread-local variable for this thread to |
90 | | * <b>value</b>. |
91 | | * |
92 | | * It's undefined behavior to use this function if the threadlocal hasn't |
93 | | * been initialized, or has been destroyed. |
94 | | */ |
95 | | void tor_threadlocal_set(tor_threadlocal_t *threadlocal, void *value); |
96 | | |
97 | | /** |
98 | | * Atomic counter type; holds a size_t value. |
99 | | */ |
100 | | #ifdef HAVE_WORKING_STDATOMIC |
101 | | typedef struct atomic_counter_t { |
102 | | atomic_size_t val; |
103 | | } atomic_counter_t; |
104 | | #ifndef COCCI |
105 | | #define ATOMIC_LINKAGE static |
106 | | #endif |
107 | | #else /* !defined(HAVE_WORKING_STDATOMIC) */ |
108 | | typedef struct atomic_counter_t { |
109 | | tor_mutex_t mutex; |
110 | | size_t val; |
111 | | } atomic_counter_t; |
112 | | #define ATOMIC_LINKAGE |
113 | | #endif /* defined(HAVE_WORKING_STDATOMIC) */ |
114 | | |
115 | | ATOMIC_LINKAGE void atomic_counter_init(atomic_counter_t *counter); |
116 | | ATOMIC_LINKAGE void atomic_counter_destroy(atomic_counter_t *counter); |
117 | | ATOMIC_LINKAGE void atomic_counter_add(atomic_counter_t *counter, size_t add); |
118 | | ATOMIC_LINKAGE void atomic_counter_sub(atomic_counter_t *counter, size_t sub); |
119 | | ATOMIC_LINKAGE size_t atomic_counter_get(atomic_counter_t *counter); |
120 | | ATOMIC_LINKAGE size_t atomic_counter_exchange(atomic_counter_t *counter, |
121 | | size_t newval); |
122 | | #undef ATOMIC_LINKAGE |
123 | | |
124 | | #ifdef HAVE_WORKING_STDATOMIC |
125 | | /** Initialize a new atomic counter with the value 0 */ |
126 | | static inline void |
127 | | atomic_counter_init(atomic_counter_t *counter) |
128 | 160 | { |
129 | 160 | atomic_init(&counter->val, 0); |
130 | 160 | } Unexecuted instantiation: fuzzing_common.c:atomic_counter_init config.c:atomic_counter_init Line | Count | Source | 128 | 16 | { | 129 | | atomic_init(&counter->val, 0); | 130 | 16 | } |
Unexecuted instantiation: control.c:atomic_counter_init Unexecuted instantiation: control_auth.c:atomic_counter_init Unexecuted instantiation: control_bootstrap.c:atomic_counter_init Unexecuted instantiation: control_cmd.c:atomic_counter_init Unexecuted instantiation: control_events.c:atomic_counter_init Unexecuted instantiation: control_fmt.c:atomic_counter_init Unexecuted instantiation: control_getinfo.c:atomic_counter_init Unexecuted instantiation: control_hs.c:atomic_counter_init Unexecuted instantiation: control_proto.c:atomic_counter_init Unexecuted instantiation: describe.c:atomic_counter_init Unexecuted instantiation: dirauth_config.c:atomic_counter_init Unexecuted instantiation: dirauth_periodic.c:atomic_counter_init Unexecuted instantiation: dirauth_sys.c:atomic_counter_init Unexecuted instantiation: dirclient.c:atomic_counter_init Unexecuted instantiation: dirclient_modes.c:atomic_counter_init Unexecuted instantiation: directory.c:atomic_counter_init Unexecuted instantiation: dirlist.c:atomic_counter_init Unexecuted instantiation: dirserv.c:atomic_counter_init Unexecuted instantiation: dirvote.c:atomic_counter_init Unexecuted instantiation: dlstatus.c:atomic_counter_init Unexecuted instantiation: dns.c:atomic_counter_init Unexecuted instantiation: dnsserv.c:atomic_counter_init Unexecuted instantiation: dsigs_parse.c:atomic_counter_init Unexecuted instantiation: entrynodes.c:atomic_counter_init Unexecuted instantiation: fmt_routerstatus.c:atomic_counter_init Unexecuted instantiation: geoip_stats.c:atomic_counter_init Unexecuted instantiation: getinfo_geoip.c:atomic_counter_init Unexecuted instantiation: guardfraction.c:atomic_counter_init Unexecuted instantiation: hibernate.c:atomic_counter_init Unexecuted instantiation: hs_cache.c:atomic_counter_init Unexecuted instantiation: hs_client.c:atomic_counter_init Unexecuted instantiation: hs_common.c:atomic_counter_init Unexecuted instantiation: hs_config.c:atomic_counter_init Unexecuted instantiation: hs_control.c:atomic_counter_init Unexecuted instantiation: hs_descriptor.c:atomic_counter_init Unexecuted instantiation: hs_ident.c:atomic_counter_init Unexecuted instantiation: hs_ob.c:atomic_counter_init Unexecuted instantiation: hs_pow.c:atomic_counter_init Unexecuted instantiation: hs_service.c:atomic_counter_init Unexecuted instantiation: hs_stats.c:atomic_counter_init Unexecuted instantiation: loadkey.c:atomic_counter_init Unexecuted instantiation: main.c:atomic_counter_init Unexecuted instantiation: metrics.c:atomic_counter_init Unexecuted instantiation: microdesc.c:atomic_counter_init Unexecuted instantiation: microdesc_parse.c:atomic_counter_init Unexecuted instantiation: networkstatus.c:atomic_counter_init Unexecuted instantiation: nickname.c:atomic_counter_init Unexecuted instantiation: node_select.c:atomic_counter_init Unexecuted instantiation: nodefamily.c:atomic_counter_init Unexecuted instantiation: nodelist.c:atomic_counter_init Unexecuted instantiation: ns_parse.c:atomic_counter_init Unexecuted instantiation: onion_queue.c:atomic_counter_init Unexecuted instantiation: predict_ports.c:atomic_counter_init Unexecuted instantiation: process_descs.c:atomic_counter_init Unexecuted instantiation: reachability.c:atomic_counter_init Unexecuted instantiation: recommend_pkg.c:atomic_counter_init Unexecuted instantiation: relay_config.c:atomic_counter_init Unexecuted instantiation: relay_find_addr.c:atomic_counter_init Unexecuted instantiation: rendcommon.c:atomic_counter_init Unexecuted instantiation: rendmid.c:atomic_counter_init Unexecuted instantiation: rephist.c:atomic_counter_init Unexecuted instantiation: replaycache.c:atomic_counter_init Unexecuted instantiation: resolve_addr.c:atomic_counter_init Unexecuted instantiation: router.c:atomic_counter_init Unexecuted instantiation: routerinfo.c:atomic_counter_init Unexecuted instantiation: routerkeys.c:atomic_counter_init Unexecuted instantiation: routerlist.c:atomic_counter_init Unexecuted instantiation: routermode.c:atomic_counter_init Unexecuted instantiation: routerparse.c:atomic_counter_init Unexecuted instantiation: routerset.c:atomic_counter_init Unexecuted instantiation: selftest.c:atomic_counter_init Unexecuted instantiation: shared_random.c:atomic_counter_init Unexecuted instantiation: shared_random_client.c:atomic_counter_init Unexecuted instantiation: shared_random_state.c:atomic_counter_init Unexecuted instantiation: shutdown.c:atomic_counter_init Unexecuted instantiation: sigcommon.c:atomic_counter_init Unexecuted instantiation: signing.c:atomic_counter_init Unexecuted instantiation: statefile.c:atomic_counter_init Unexecuted instantiation: torcert.c:atomic_counter_init Unexecuted instantiation: transport_config.c:atomic_counter_init Unexecuted instantiation: transports.c:atomic_counter_init Unexecuted instantiation: unparseable.c:atomic_counter_init Unexecuted instantiation: voteflags.c:atomic_counter_init Unexecuted instantiation: voting_schedule.c:atomic_counter_init Unexecuted instantiation: channel.c:atomic_counter_init Unexecuted instantiation: channelpadding.c:atomic_counter_init Unexecuted instantiation: channeltls.c:atomic_counter_init Unexecuted instantiation: circuitbuild.c:atomic_counter_init Unexecuted instantiation: circuitlist.c:atomic_counter_init Unexecuted instantiation: circuitmux.c:atomic_counter_init Unexecuted instantiation: circuitmux_ewma.c:atomic_counter_init Unexecuted instantiation: circuitpadding.c:atomic_counter_init Unexecuted instantiation: circuitpadding_machines.c:atomic_counter_init Unexecuted instantiation: circuitstats.c:atomic_counter_init Unexecuted instantiation: circuituse.c:atomic_counter_init Unexecuted instantiation: command.c:atomic_counter_init Unexecuted instantiation: conflux.c:atomic_counter_init Unexecuted instantiation: conflux_cell.c:atomic_counter_init Unexecuted instantiation: conflux_params.c:atomic_counter_init Unexecuted instantiation: conflux_pool.c:atomic_counter_init Unexecuted instantiation: conflux_sys.c:atomic_counter_init Unexecuted instantiation: conflux_util.c:atomic_counter_init Unexecuted instantiation: congestion_control_common.c:atomic_counter_init Unexecuted instantiation: congestion_control_flow.c:atomic_counter_init Unexecuted instantiation: congestion_control_vegas.c:atomic_counter_init Unexecuted instantiation: connection.c:atomic_counter_init Unexecuted instantiation: connection_edge.c:atomic_counter_init Unexecuted instantiation: connection_or.c:atomic_counter_init Unexecuted instantiation: cpuworker.c:atomic_counter_init Unexecuted instantiation: crypt_path.c:atomic_counter_init Unexecuted instantiation: dos.c:atomic_counter_init Unexecuted instantiation: dos_sys.c:atomic_counter_init Unexecuted instantiation: extendinfo.c:atomic_counter_init Unexecuted instantiation: hs_ntor.c:atomic_counter_init Unexecuted instantiation: mainloop.c:atomic_counter_init Unexecuted instantiation: mainloop_pubsub.c:atomic_counter_init Unexecuted instantiation: mainloop_sys.c:atomic_counter_init Unexecuted instantiation: netstatus.c:atomic_counter_init Unexecuted instantiation: ocirc_event.c:atomic_counter_init Unexecuted instantiation: onion.c:atomic_counter_init Unexecuted instantiation: onion_crypto.c:atomic_counter_init Unexecuted instantiation: onion_fast.c:atomic_counter_init Unexecuted instantiation: or_sys.c:atomic_counter_init Unexecuted instantiation: orconn_event.c:atomic_counter_init Unexecuted instantiation: periodic.c:atomic_counter_init Unexecuted instantiation: policies.c:atomic_counter_init Unexecuted instantiation: proto_cell.c:atomic_counter_init Unexecuted instantiation: proto_control0.c:atomic_counter_init Unexecuted instantiation: proto_http.c:atomic_counter_init Unexecuted instantiation: proto_socks.c:atomic_counter_init Unexecuted instantiation: protover.c:atomic_counter_init Unexecuted instantiation: reasons.c:atomic_counter_init Unexecuted instantiation: relay.c:atomic_counter_init Unexecuted instantiation: relay_crypto.c:atomic_counter_init Unexecuted instantiation: relay_crypto_cgo.c:atomic_counter_init Unexecuted instantiation: relay_crypto_tor1.c:atomic_counter_init Unexecuted instantiation: relay_msg.c:atomic_counter_init Unexecuted instantiation: scheduler.c:atomic_counter_init Unexecuted instantiation: scheduler_kist.c:atomic_counter_init Unexecuted instantiation: scheduler_vanilla.c:atomic_counter_init Unexecuted instantiation: sendme.c:atomic_counter_init Unexecuted instantiation: status.c:atomic_counter_init Unexecuted instantiation: versions.c:atomic_counter_init compress.c:atomic_counter_init Line | Count | Source | 128 | 32 | { | 129 | | atomic_init(&counter->val, 0); | 130 | 32 | } |
compress_lzma.c:atomic_counter_init Line | Count | Source | 128 | 32 | { | 129 | | atomic_init(&counter->val, 0); | 130 | 32 | } |
compress_zlib.c:atomic_counter_init Line | Count | Source | 128 | 32 | { | 129 | | atomic_init(&counter->val, 0); | 130 | 32 | } |
compress_zstd.c:atomic_counter_init Line | Count | Source | 128 | 32 | { | 129 | | atomic_init(&counter->val, 0); | 130 | 32 | } |
Unexecuted instantiation: crypto_openssl_mgt.c:atomic_counter_init Unexecuted instantiation: crypto_rand_fast.c:atomic_counter_init Unexecuted instantiation: workqueue.c:atomic_counter_init util_bug.c:atomic_counter_init Line | Count | Source | 128 | 16 | { | 129 | | atomic_init(&counter->val, 0); | 130 | 16 | } |
Unexecuted instantiation: daemon.c:atomic_counter_init Unexecuted instantiation: compat_pthreads.c:atomic_counter_init Unexecuted instantiation: compat_threads.c:atomic_counter_init Unexecuted instantiation: addressmap.c:atomic_counter_init Unexecuted instantiation: authcert.c:atomic_counter_init Unexecuted instantiation: authcert_parse.c:atomic_counter_init Unexecuted instantiation: authmode.c:atomic_counter_init Unexecuted instantiation: bridgeauth.c:atomic_counter_init Unexecuted instantiation: bridges.c:atomic_counter_init Unexecuted instantiation: btrack_circuit.c:atomic_counter_init Unexecuted instantiation: btrack_orconn.c:atomic_counter_init Unexecuted instantiation: btrack_orconn_cevent.c:atomic_counter_init Unexecuted instantiation: btrack_orconn_maps.c:atomic_counter_init Unexecuted instantiation: bwauth.c:atomic_counter_init Unexecuted instantiation: bwhist.c:atomic_counter_init Unexecuted instantiation: circpathbias.c:atomic_counter_init Unexecuted instantiation: circuitbuild_relay.c:atomic_counter_init Unexecuted instantiation: connstats.c:atomic_counter_init Unexecuted instantiation: conscache.c:atomic_counter_init Unexecuted instantiation: consdiff.c:atomic_counter_init Unexecuted instantiation: consdiffmgr.c:atomic_counter_init Unexecuted instantiation: dircache.c:atomic_counter_init Unexecuted instantiation: dircollate.c:atomic_counter_init Unexecuted instantiation: ext_orport.c:atomic_counter_init Unexecuted instantiation: fp_pair.c:atomic_counter_init Unexecuted instantiation: hs_cell.c:atomic_counter_init Unexecuted instantiation: hs_circuit.c:atomic_counter_init Unexecuted instantiation: hs_circuitmap.c:atomic_counter_init Unexecuted instantiation: hs_dos.c:atomic_counter_init Unexecuted instantiation: hs_intropoint.c:atomic_counter_init Unexecuted instantiation: hs_metrics.c:atomic_counter_init Unexecuted instantiation: hs_sys.c:atomic_counter_init Unexecuted instantiation: metrics_sys.c:atomic_counter_init Unexecuted instantiation: policy_parse.c:atomic_counter_init Unexecuted instantiation: proxymode.c:atomic_counter_init Unexecuted instantiation: relay_handshake.c:atomic_counter_init Unexecuted instantiation: relay_metrics.c:atomic_counter_init Unexecuted instantiation: relay_periodic.c:atomic_counter_init Unexecuted instantiation: relay_sys.c:atomic_counter_init Unexecuted instantiation: or_periodic.c:atomic_counter_init Unexecuted instantiation: proto_ext_or.c:atomic_counter_init Unexecuted instantiation: fuzz_diff_apply.c:atomic_counter_init Unexecuted instantiation: fuzz_http_connect.c:atomic_counter_init Unexecuted instantiation: fuzz_extrainfo.c:atomic_counter_init Unexecuted instantiation: fuzz_http.c:atomic_counter_init Unexecuted instantiation: fuzz_descriptor.c:atomic_counter_init Unexecuted instantiation: fuzz_socks.c:atomic_counter_init Unexecuted instantiation: fuzz_hsdescv3.c:atomic_counter_init Unexecuted instantiation: fuzz_hsdescv3_middle.c:atomic_counter_init Unexecuted instantiation: fuzz_diff.c:atomic_counter_init Unexecuted instantiation: fuzz_hsdescv3_inner.c:atomic_counter_init Unexecuted instantiation: fuzz_microdesc.c:atomic_counter_init Unexecuted instantiation: fuzz_consensus.c:atomic_counter_init Unexecuted instantiation: fuzz_vrs.c:atomic_counter_init |
131 | | /** Clean up all resources held by an atomic counter. |
132 | | * |
133 | | * This usage note applies to the compat_threads implementation of |
134 | | * atomic_counter_destroy(): |
135 | | * Destroying a locked mutex is undefined behaviour. Global mutexes may be |
136 | | * locked when they are passed to this function, because multiple threads can |
137 | | * still access them. So we can either: |
138 | | * - destroy on shutdown, and re-initialise when tor re-initialises, or |
139 | | * - skip destroying and re-initialisation, using a sentinel variable. |
140 | | * See #31735 for details. |
141 | | */ |
142 | | static inline void |
143 | | atomic_counter_destroy(atomic_counter_t *counter) |
144 | 0 | { |
145 | 0 | (void)counter; |
146 | 0 | } Unexecuted instantiation: fuzzing_common.c:atomic_counter_destroy Unexecuted instantiation: config.c:atomic_counter_destroy Unexecuted instantiation: control.c:atomic_counter_destroy Unexecuted instantiation: control_auth.c:atomic_counter_destroy Unexecuted instantiation: control_bootstrap.c:atomic_counter_destroy Unexecuted instantiation: control_cmd.c:atomic_counter_destroy Unexecuted instantiation: control_events.c:atomic_counter_destroy Unexecuted instantiation: control_fmt.c:atomic_counter_destroy Unexecuted instantiation: control_getinfo.c:atomic_counter_destroy Unexecuted instantiation: control_hs.c:atomic_counter_destroy Unexecuted instantiation: control_proto.c:atomic_counter_destroy Unexecuted instantiation: describe.c:atomic_counter_destroy Unexecuted instantiation: dirauth_config.c:atomic_counter_destroy Unexecuted instantiation: dirauth_periodic.c:atomic_counter_destroy Unexecuted instantiation: dirauth_sys.c:atomic_counter_destroy Unexecuted instantiation: dirclient.c:atomic_counter_destroy Unexecuted instantiation: dirclient_modes.c:atomic_counter_destroy Unexecuted instantiation: directory.c:atomic_counter_destroy Unexecuted instantiation: dirlist.c:atomic_counter_destroy Unexecuted instantiation: dirserv.c:atomic_counter_destroy Unexecuted instantiation: dirvote.c:atomic_counter_destroy Unexecuted instantiation: dlstatus.c:atomic_counter_destroy Unexecuted instantiation: dns.c:atomic_counter_destroy Unexecuted instantiation: dnsserv.c:atomic_counter_destroy Unexecuted instantiation: dsigs_parse.c:atomic_counter_destroy Unexecuted instantiation: entrynodes.c:atomic_counter_destroy Unexecuted instantiation: fmt_routerstatus.c:atomic_counter_destroy Unexecuted instantiation: geoip_stats.c:atomic_counter_destroy Unexecuted instantiation: getinfo_geoip.c:atomic_counter_destroy Unexecuted instantiation: guardfraction.c:atomic_counter_destroy Unexecuted instantiation: hibernate.c:atomic_counter_destroy Unexecuted instantiation: hs_cache.c:atomic_counter_destroy Unexecuted instantiation: hs_client.c:atomic_counter_destroy Unexecuted instantiation: hs_common.c:atomic_counter_destroy Unexecuted instantiation: hs_config.c:atomic_counter_destroy Unexecuted instantiation: hs_control.c:atomic_counter_destroy Unexecuted instantiation: hs_descriptor.c:atomic_counter_destroy Unexecuted instantiation: hs_ident.c:atomic_counter_destroy Unexecuted instantiation: hs_ob.c:atomic_counter_destroy Unexecuted instantiation: hs_pow.c:atomic_counter_destroy Unexecuted instantiation: hs_service.c:atomic_counter_destroy Unexecuted instantiation: hs_stats.c:atomic_counter_destroy Unexecuted instantiation: loadkey.c:atomic_counter_destroy Unexecuted instantiation: main.c:atomic_counter_destroy Unexecuted instantiation: metrics.c:atomic_counter_destroy Unexecuted instantiation: microdesc.c:atomic_counter_destroy Unexecuted instantiation: microdesc_parse.c:atomic_counter_destroy Unexecuted instantiation: networkstatus.c:atomic_counter_destroy Unexecuted instantiation: nickname.c:atomic_counter_destroy Unexecuted instantiation: node_select.c:atomic_counter_destroy Unexecuted instantiation: nodefamily.c:atomic_counter_destroy Unexecuted instantiation: nodelist.c:atomic_counter_destroy Unexecuted instantiation: ns_parse.c:atomic_counter_destroy Unexecuted instantiation: onion_queue.c:atomic_counter_destroy Unexecuted instantiation: predict_ports.c:atomic_counter_destroy Unexecuted instantiation: process_descs.c:atomic_counter_destroy Unexecuted instantiation: reachability.c:atomic_counter_destroy Unexecuted instantiation: recommend_pkg.c:atomic_counter_destroy Unexecuted instantiation: relay_config.c:atomic_counter_destroy Unexecuted instantiation: relay_find_addr.c:atomic_counter_destroy Unexecuted instantiation: rendcommon.c:atomic_counter_destroy Unexecuted instantiation: rendmid.c:atomic_counter_destroy Unexecuted instantiation: rephist.c:atomic_counter_destroy Unexecuted instantiation: replaycache.c:atomic_counter_destroy Unexecuted instantiation: resolve_addr.c:atomic_counter_destroy Unexecuted instantiation: router.c:atomic_counter_destroy Unexecuted instantiation: routerinfo.c:atomic_counter_destroy Unexecuted instantiation: routerkeys.c:atomic_counter_destroy Unexecuted instantiation: routerlist.c:atomic_counter_destroy Unexecuted instantiation: routermode.c:atomic_counter_destroy Unexecuted instantiation: routerparse.c:atomic_counter_destroy Unexecuted instantiation: routerset.c:atomic_counter_destroy Unexecuted instantiation: selftest.c:atomic_counter_destroy Unexecuted instantiation: shared_random.c:atomic_counter_destroy Unexecuted instantiation: shared_random_client.c:atomic_counter_destroy Unexecuted instantiation: shared_random_state.c:atomic_counter_destroy Unexecuted instantiation: shutdown.c:atomic_counter_destroy Unexecuted instantiation: sigcommon.c:atomic_counter_destroy Unexecuted instantiation: signing.c:atomic_counter_destroy Unexecuted instantiation: statefile.c:atomic_counter_destroy Unexecuted instantiation: torcert.c:atomic_counter_destroy Unexecuted instantiation: transport_config.c:atomic_counter_destroy Unexecuted instantiation: transports.c:atomic_counter_destroy Unexecuted instantiation: unparseable.c:atomic_counter_destroy Unexecuted instantiation: voteflags.c:atomic_counter_destroy Unexecuted instantiation: voting_schedule.c:atomic_counter_destroy Unexecuted instantiation: channel.c:atomic_counter_destroy Unexecuted instantiation: channelpadding.c:atomic_counter_destroy Unexecuted instantiation: channeltls.c:atomic_counter_destroy Unexecuted instantiation: circuitbuild.c:atomic_counter_destroy Unexecuted instantiation: circuitlist.c:atomic_counter_destroy Unexecuted instantiation: circuitmux.c:atomic_counter_destroy Unexecuted instantiation: circuitmux_ewma.c:atomic_counter_destroy Unexecuted instantiation: circuitpadding.c:atomic_counter_destroy Unexecuted instantiation: circuitpadding_machines.c:atomic_counter_destroy Unexecuted instantiation: circuitstats.c:atomic_counter_destroy Unexecuted instantiation: circuituse.c:atomic_counter_destroy Unexecuted instantiation: command.c:atomic_counter_destroy Unexecuted instantiation: conflux.c:atomic_counter_destroy Unexecuted instantiation: conflux_cell.c:atomic_counter_destroy Unexecuted instantiation: conflux_params.c:atomic_counter_destroy Unexecuted instantiation: conflux_pool.c:atomic_counter_destroy Unexecuted instantiation: conflux_sys.c:atomic_counter_destroy Unexecuted instantiation: conflux_util.c:atomic_counter_destroy Unexecuted instantiation: congestion_control_common.c:atomic_counter_destroy Unexecuted instantiation: congestion_control_flow.c:atomic_counter_destroy Unexecuted instantiation: congestion_control_vegas.c:atomic_counter_destroy Unexecuted instantiation: connection.c:atomic_counter_destroy Unexecuted instantiation: connection_edge.c:atomic_counter_destroy Unexecuted instantiation: connection_or.c:atomic_counter_destroy Unexecuted instantiation: cpuworker.c:atomic_counter_destroy Unexecuted instantiation: crypt_path.c:atomic_counter_destroy Unexecuted instantiation: dos.c:atomic_counter_destroy Unexecuted instantiation: dos_sys.c:atomic_counter_destroy Unexecuted instantiation: extendinfo.c:atomic_counter_destroy Unexecuted instantiation: hs_ntor.c:atomic_counter_destroy Unexecuted instantiation: mainloop.c:atomic_counter_destroy Unexecuted instantiation: mainloop_pubsub.c:atomic_counter_destroy Unexecuted instantiation: mainloop_sys.c:atomic_counter_destroy Unexecuted instantiation: netstatus.c:atomic_counter_destroy Unexecuted instantiation: ocirc_event.c:atomic_counter_destroy Unexecuted instantiation: onion.c:atomic_counter_destroy Unexecuted instantiation: onion_crypto.c:atomic_counter_destroy Unexecuted instantiation: onion_fast.c:atomic_counter_destroy Unexecuted instantiation: or_sys.c:atomic_counter_destroy Unexecuted instantiation: orconn_event.c:atomic_counter_destroy Unexecuted instantiation: periodic.c:atomic_counter_destroy Unexecuted instantiation: policies.c:atomic_counter_destroy Unexecuted instantiation: proto_cell.c:atomic_counter_destroy Unexecuted instantiation: proto_control0.c:atomic_counter_destroy Unexecuted instantiation: proto_http.c:atomic_counter_destroy Unexecuted instantiation: proto_socks.c:atomic_counter_destroy Unexecuted instantiation: protover.c:atomic_counter_destroy Unexecuted instantiation: reasons.c:atomic_counter_destroy Unexecuted instantiation: relay.c:atomic_counter_destroy Unexecuted instantiation: relay_crypto.c:atomic_counter_destroy Unexecuted instantiation: relay_crypto_cgo.c:atomic_counter_destroy Unexecuted instantiation: relay_crypto_tor1.c:atomic_counter_destroy Unexecuted instantiation: relay_msg.c:atomic_counter_destroy Unexecuted instantiation: scheduler.c:atomic_counter_destroy Unexecuted instantiation: scheduler_kist.c:atomic_counter_destroy Unexecuted instantiation: scheduler_vanilla.c:atomic_counter_destroy Unexecuted instantiation: sendme.c:atomic_counter_destroy Unexecuted instantiation: status.c:atomic_counter_destroy Unexecuted instantiation: versions.c:atomic_counter_destroy Unexecuted instantiation: compress.c:atomic_counter_destroy Unexecuted instantiation: compress_lzma.c:atomic_counter_destroy Unexecuted instantiation: compress_zlib.c:atomic_counter_destroy Unexecuted instantiation: compress_zstd.c:atomic_counter_destroy Unexecuted instantiation: crypto_openssl_mgt.c:atomic_counter_destroy Unexecuted instantiation: crypto_rand_fast.c:atomic_counter_destroy Unexecuted instantiation: workqueue.c:atomic_counter_destroy Unexecuted instantiation: util_bug.c:atomic_counter_destroy Unexecuted instantiation: daemon.c:atomic_counter_destroy Unexecuted instantiation: compat_pthreads.c:atomic_counter_destroy Unexecuted instantiation: compat_threads.c:atomic_counter_destroy Unexecuted instantiation: addressmap.c:atomic_counter_destroy Unexecuted instantiation: authcert.c:atomic_counter_destroy Unexecuted instantiation: authcert_parse.c:atomic_counter_destroy Unexecuted instantiation: authmode.c:atomic_counter_destroy Unexecuted instantiation: bridgeauth.c:atomic_counter_destroy Unexecuted instantiation: bridges.c:atomic_counter_destroy Unexecuted instantiation: btrack_circuit.c:atomic_counter_destroy Unexecuted instantiation: btrack_orconn.c:atomic_counter_destroy Unexecuted instantiation: btrack_orconn_cevent.c:atomic_counter_destroy Unexecuted instantiation: btrack_orconn_maps.c:atomic_counter_destroy Unexecuted instantiation: bwauth.c:atomic_counter_destroy Unexecuted instantiation: bwhist.c:atomic_counter_destroy Unexecuted instantiation: circpathbias.c:atomic_counter_destroy Unexecuted instantiation: circuitbuild_relay.c:atomic_counter_destroy Unexecuted instantiation: connstats.c:atomic_counter_destroy Unexecuted instantiation: conscache.c:atomic_counter_destroy Unexecuted instantiation: consdiff.c:atomic_counter_destroy Unexecuted instantiation: consdiffmgr.c:atomic_counter_destroy Unexecuted instantiation: dircache.c:atomic_counter_destroy Unexecuted instantiation: dircollate.c:atomic_counter_destroy Unexecuted instantiation: ext_orport.c:atomic_counter_destroy Unexecuted instantiation: fp_pair.c:atomic_counter_destroy Unexecuted instantiation: hs_cell.c:atomic_counter_destroy Unexecuted instantiation: hs_circuit.c:atomic_counter_destroy Unexecuted instantiation: hs_circuitmap.c:atomic_counter_destroy Unexecuted instantiation: hs_dos.c:atomic_counter_destroy Unexecuted instantiation: hs_intropoint.c:atomic_counter_destroy Unexecuted instantiation: hs_metrics.c:atomic_counter_destroy Unexecuted instantiation: hs_sys.c:atomic_counter_destroy Unexecuted instantiation: metrics_sys.c:atomic_counter_destroy Unexecuted instantiation: policy_parse.c:atomic_counter_destroy Unexecuted instantiation: proxymode.c:atomic_counter_destroy Unexecuted instantiation: relay_handshake.c:atomic_counter_destroy Unexecuted instantiation: relay_metrics.c:atomic_counter_destroy Unexecuted instantiation: relay_periodic.c:atomic_counter_destroy Unexecuted instantiation: relay_sys.c:atomic_counter_destroy Unexecuted instantiation: or_periodic.c:atomic_counter_destroy Unexecuted instantiation: proto_ext_or.c:atomic_counter_destroy Unexecuted instantiation: fuzz_diff_apply.c:atomic_counter_destroy Unexecuted instantiation: fuzz_http_connect.c:atomic_counter_destroy Unexecuted instantiation: fuzz_extrainfo.c:atomic_counter_destroy Unexecuted instantiation: fuzz_http.c:atomic_counter_destroy Unexecuted instantiation: fuzz_descriptor.c:atomic_counter_destroy Unexecuted instantiation: fuzz_socks.c:atomic_counter_destroy Unexecuted instantiation: fuzz_hsdescv3.c:atomic_counter_destroy Unexecuted instantiation: fuzz_hsdescv3_middle.c:atomic_counter_destroy Unexecuted instantiation: fuzz_diff.c:atomic_counter_destroy Unexecuted instantiation: fuzz_hsdescv3_inner.c:atomic_counter_destroy Unexecuted instantiation: fuzz_microdesc.c:atomic_counter_destroy Unexecuted instantiation: fuzz_consensus.c:atomic_counter_destroy Unexecuted instantiation: fuzz_vrs.c:atomic_counter_destroy |
147 | | /** Add a value to an atomic counter. */ |
148 | | static inline void |
149 | | atomic_counter_add(atomic_counter_t *counter, size_t add) |
150 | 43.8k | { |
151 | 43.8k | (void) atomic_fetch_add(&counter->val, add); |
152 | 43.8k | } Unexecuted instantiation: fuzzing_common.c:atomic_counter_add Unexecuted instantiation: config.c:atomic_counter_add Unexecuted instantiation: control.c:atomic_counter_add Unexecuted instantiation: control_auth.c:atomic_counter_add Unexecuted instantiation: control_bootstrap.c:atomic_counter_add Unexecuted instantiation: control_cmd.c:atomic_counter_add Unexecuted instantiation: control_events.c:atomic_counter_add Unexecuted instantiation: control_fmt.c:atomic_counter_add Unexecuted instantiation: control_getinfo.c:atomic_counter_add Unexecuted instantiation: control_hs.c:atomic_counter_add Unexecuted instantiation: control_proto.c:atomic_counter_add Unexecuted instantiation: describe.c:atomic_counter_add Unexecuted instantiation: dirauth_config.c:atomic_counter_add Unexecuted instantiation: dirauth_periodic.c:atomic_counter_add Unexecuted instantiation: dirauth_sys.c:atomic_counter_add Unexecuted instantiation: dirclient.c:atomic_counter_add Unexecuted instantiation: dirclient_modes.c:atomic_counter_add Unexecuted instantiation: directory.c:atomic_counter_add Unexecuted instantiation: dirlist.c:atomic_counter_add Unexecuted instantiation: dirserv.c:atomic_counter_add Unexecuted instantiation: dirvote.c:atomic_counter_add Unexecuted instantiation: dlstatus.c:atomic_counter_add Unexecuted instantiation: dns.c:atomic_counter_add Unexecuted instantiation: dnsserv.c:atomic_counter_add Unexecuted instantiation: dsigs_parse.c:atomic_counter_add Unexecuted instantiation: entrynodes.c:atomic_counter_add Unexecuted instantiation: fmt_routerstatus.c:atomic_counter_add Unexecuted instantiation: geoip_stats.c:atomic_counter_add Unexecuted instantiation: getinfo_geoip.c:atomic_counter_add Unexecuted instantiation: guardfraction.c:atomic_counter_add Unexecuted instantiation: hibernate.c:atomic_counter_add Unexecuted instantiation: hs_cache.c:atomic_counter_add Unexecuted instantiation: hs_client.c:atomic_counter_add Unexecuted instantiation: hs_common.c:atomic_counter_add Unexecuted instantiation: hs_config.c:atomic_counter_add Unexecuted instantiation: hs_control.c:atomic_counter_add Unexecuted instantiation: hs_descriptor.c:atomic_counter_add Unexecuted instantiation: hs_ident.c:atomic_counter_add Unexecuted instantiation: hs_ob.c:atomic_counter_add Unexecuted instantiation: hs_pow.c:atomic_counter_add Unexecuted instantiation: hs_service.c:atomic_counter_add Unexecuted instantiation: hs_stats.c:atomic_counter_add Unexecuted instantiation: loadkey.c:atomic_counter_add Unexecuted instantiation: main.c:atomic_counter_add Unexecuted instantiation: metrics.c:atomic_counter_add Unexecuted instantiation: microdesc.c:atomic_counter_add Unexecuted instantiation: microdesc_parse.c:atomic_counter_add Unexecuted instantiation: networkstatus.c:atomic_counter_add Unexecuted instantiation: nickname.c:atomic_counter_add Unexecuted instantiation: node_select.c:atomic_counter_add Unexecuted instantiation: nodefamily.c:atomic_counter_add Unexecuted instantiation: nodelist.c:atomic_counter_add Unexecuted instantiation: ns_parse.c:atomic_counter_add Unexecuted instantiation: onion_queue.c:atomic_counter_add Unexecuted instantiation: predict_ports.c:atomic_counter_add Unexecuted instantiation: process_descs.c:atomic_counter_add Unexecuted instantiation: reachability.c:atomic_counter_add Unexecuted instantiation: recommend_pkg.c:atomic_counter_add Unexecuted instantiation: relay_config.c:atomic_counter_add Unexecuted instantiation: relay_find_addr.c:atomic_counter_add Unexecuted instantiation: rendcommon.c:atomic_counter_add Unexecuted instantiation: rendmid.c:atomic_counter_add Unexecuted instantiation: rephist.c:atomic_counter_add Unexecuted instantiation: replaycache.c:atomic_counter_add Unexecuted instantiation: resolve_addr.c:atomic_counter_add Unexecuted instantiation: router.c:atomic_counter_add Unexecuted instantiation: routerinfo.c:atomic_counter_add Unexecuted instantiation: routerkeys.c:atomic_counter_add Unexecuted instantiation: routerlist.c:atomic_counter_add Unexecuted instantiation: routermode.c:atomic_counter_add Unexecuted instantiation: routerparse.c:atomic_counter_add Unexecuted instantiation: routerset.c:atomic_counter_add Unexecuted instantiation: selftest.c:atomic_counter_add Unexecuted instantiation: shared_random.c:atomic_counter_add Unexecuted instantiation: shared_random_client.c:atomic_counter_add Unexecuted instantiation: shared_random_state.c:atomic_counter_add Unexecuted instantiation: shutdown.c:atomic_counter_add Unexecuted instantiation: sigcommon.c:atomic_counter_add Unexecuted instantiation: signing.c:atomic_counter_add Unexecuted instantiation: statefile.c:atomic_counter_add Unexecuted instantiation: torcert.c:atomic_counter_add Unexecuted instantiation: transport_config.c:atomic_counter_add Unexecuted instantiation: transports.c:atomic_counter_add Unexecuted instantiation: unparseable.c:atomic_counter_add Unexecuted instantiation: voteflags.c:atomic_counter_add Unexecuted instantiation: voting_schedule.c:atomic_counter_add Unexecuted instantiation: channel.c:atomic_counter_add Unexecuted instantiation: channelpadding.c:atomic_counter_add Unexecuted instantiation: channeltls.c:atomic_counter_add Unexecuted instantiation: circuitbuild.c:atomic_counter_add Unexecuted instantiation: circuitlist.c:atomic_counter_add Unexecuted instantiation: circuitmux.c:atomic_counter_add Unexecuted instantiation: circuitmux_ewma.c:atomic_counter_add Unexecuted instantiation: circuitpadding.c:atomic_counter_add Unexecuted instantiation: circuitpadding_machines.c:atomic_counter_add Unexecuted instantiation: circuitstats.c:atomic_counter_add Unexecuted instantiation: circuituse.c:atomic_counter_add Unexecuted instantiation: command.c:atomic_counter_add Unexecuted instantiation: conflux.c:atomic_counter_add Unexecuted instantiation: conflux_cell.c:atomic_counter_add Unexecuted instantiation: conflux_params.c:atomic_counter_add Unexecuted instantiation: conflux_pool.c:atomic_counter_add Unexecuted instantiation: conflux_sys.c:atomic_counter_add Unexecuted instantiation: conflux_util.c:atomic_counter_add Unexecuted instantiation: congestion_control_common.c:atomic_counter_add Unexecuted instantiation: congestion_control_flow.c:atomic_counter_add Unexecuted instantiation: congestion_control_vegas.c:atomic_counter_add Unexecuted instantiation: connection.c:atomic_counter_add Unexecuted instantiation: connection_edge.c:atomic_counter_add Unexecuted instantiation: connection_or.c:atomic_counter_add Unexecuted instantiation: cpuworker.c:atomic_counter_add Unexecuted instantiation: crypt_path.c:atomic_counter_add Unexecuted instantiation: dos.c:atomic_counter_add Unexecuted instantiation: dos_sys.c:atomic_counter_add Unexecuted instantiation: extendinfo.c:atomic_counter_add Unexecuted instantiation: hs_ntor.c:atomic_counter_add Unexecuted instantiation: mainloop.c:atomic_counter_add Unexecuted instantiation: mainloop_pubsub.c:atomic_counter_add Unexecuted instantiation: mainloop_sys.c:atomic_counter_add Unexecuted instantiation: netstatus.c:atomic_counter_add Unexecuted instantiation: ocirc_event.c:atomic_counter_add Unexecuted instantiation: onion.c:atomic_counter_add Unexecuted instantiation: onion_crypto.c:atomic_counter_add Unexecuted instantiation: onion_fast.c:atomic_counter_add Unexecuted instantiation: or_sys.c:atomic_counter_add Unexecuted instantiation: orconn_event.c:atomic_counter_add Unexecuted instantiation: periodic.c:atomic_counter_add Unexecuted instantiation: policies.c:atomic_counter_add Unexecuted instantiation: proto_cell.c:atomic_counter_add Unexecuted instantiation: proto_control0.c:atomic_counter_add Unexecuted instantiation: proto_http.c:atomic_counter_add Unexecuted instantiation: proto_socks.c:atomic_counter_add Unexecuted instantiation: protover.c:atomic_counter_add Unexecuted instantiation: reasons.c:atomic_counter_add Unexecuted instantiation: relay.c:atomic_counter_add Unexecuted instantiation: relay_crypto.c:atomic_counter_add Unexecuted instantiation: relay_crypto_cgo.c:atomic_counter_add Unexecuted instantiation: relay_crypto_tor1.c:atomic_counter_add Unexecuted instantiation: relay_msg.c:atomic_counter_add Unexecuted instantiation: scheduler.c:atomic_counter_add Unexecuted instantiation: scheduler_kist.c:atomic_counter_add Unexecuted instantiation: scheduler_vanilla.c:atomic_counter_add Unexecuted instantiation: sendme.c:atomic_counter_add Unexecuted instantiation: status.c:atomic_counter_add Unexecuted instantiation: versions.c:atomic_counter_add Unexecuted instantiation: compress.c:atomic_counter_add Unexecuted instantiation: compress_lzma.c:atomic_counter_add Unexecuted instantiation: compress_zlib.c:atomic_counter_add Unexecuted instantiation: compress_zstd.c:atomic_counter_add Unexecuted instantiation: crypto_openssl_mgt.c:atomic_counter_add Unexecuted instantiation: crypto_rand_fast.c:atomic_counter_add Unexecuted instantiation: workqueue.c:atomic_counter_add util_bug.c:atomic_counter_add Line | Count | Source | 150 | 43.8k | { | 151 | | (void) atomic_fetch_add(&counter->val, add); | 152 | 43.8k | } |
Unexecuted instantiation: daemon.c:atomic_counter_add Unexecuted instantiation: compat_pthreads.c:atomic_counter_add Unexecuted instantiation: compat_threads.c:atomic_counter_add Unexecuted instantiation: addressmap.c:atomic_counter_add Unexecuted instantiation: authcert.c:atomic_counter_add Unexecuted instantiation: authcert_parse.c:atomic_counter_add Unexecuted instantiation: authmode.c:atomic_counter_add Unexecuted instantiation: bridgeauth.c:atomic_counter_add Unexecuted instantiation: bridges.c:atomic_counter_add Unexecuted instantiation: btrack_circuit.c:atomic_counter_add Unexecuted instantiation: btrack_orconn.c:atomic_counter_add Unexecuted instantiation: btrack_orconn_cevent.c:atomic_counter_add Unexecuted instantiation: btrack_orconn_maps.c:atomic_counter_add Unexecuted instantiation: bwauth.c:atomic_counter_add Unexecuted instantiation: bwhist.c:atomic_counter_add Unexecuted instantiation: circpathbias.c:atomic_counter_add Unexecuted instantiation: circuitbuild_relay.c:atomic_counter_add Unexecuted instantiation: connstats.c:atomic_counter_add Unexecuted instantiation: conscache.c:atomic_counter_add Unexecuted instantiation: consdiff.c:atomic_counter_add Unexecuted instantiation: consdiffmgr.c:atomic_counter_add Unexecuted instantiation: dircache.c:atomic_counter_add Unexecuted instantiation: dircollate.c:atomic_counter_add Unexecuted instantiation: ext_orport.c:atomic_counter_add Unexecuted instantiation: fp_pair.c:atomic_counter_add Unexecuted instantiation: hs_cell.c:atomic_counter_add Unexecuted instantiation: hs_circuit.c:atomic_counter_add Unexecuted instantiation: hs_circuitmap.c:atomic_counter_add Unexecuted instantiation: hs_dos.c:atomic_counter_add Unexecuted instantiation: hs_intropoint.c:atomic_counter_add Unexecuted instantiation: hs_metrics.c:atomic_counter_add Unexecuted instantiation: hs_sys.c:atomic_counter_add Unexecuted instantiation: metrics_sys.c:atomic_counter_add Unexecuted instantiation: policy_parse.c:atomic_counter_add Unexecuted instantiation: proxymode.c:atomic_counter_add Unexecuted instantiation: relay_handshake.c:atomic_counter_add Unexecuted instantiation: relay_metrics.c:atomic_counter_add Unexecuted instantiation: relay_periodic.c:atomic_counter_add Unexecuted instantiation: relay_sys.c:atomic_counter_add Unexecuted instantiation: or_periodic.c:atomic_counter_add Unexecuted instantiation: proto_ext_or.c:atomic_counter_add Unexecuted instantiation: fuzz_diff_apply.c:atomic_counter_add Unexecuted instantiation: fuzz_http_connect.c:atomic_counter_add Unexecuted instantiation: fuzz_extrainfo.c:atomic_counter_add Unexecuted instantiation: fuzz_http.c:atomic_counter_add Unexecuted instantiation: fuzz_descriptor.c:atomic_counter_add Unexecuted instantiation: fuzz_socks.c:atomic_counter_add Unexecuted instantiation: fuzz_hsdescv3.c:atomic_counter_add Unexecuted instantiation: fuzz_hsdescv3_middle.c:atomic_counter_add Unexecuted instantiation: fuzz_diff.c:atomic_counter_add Unexecuted instantiation: fuzz_hsdescv3_inner.c:atomic_counter_add Unexecuted instantiation: fuzz_microdesc.c:atomic_counter_add Unexecuted instantiation: fuzz_consensus.c:atomic_counter_add Unexecuted instantiation: fuzz_vrs.c:atomic_counter_add |
153 | | /** Subtract a value from an atomic counter. */ |
154 | | static inline void |
155 | | atomic_counter_sub(atomic_counter_t *counter, size_t sub) |
156 | 0 | { |
157 | 0 | (void) atomic_fetch_sub(&counter->val, sub); |
158 | 0 | } Unexecuted instantiation: fuzzing_common.c:atomic_counter_sub Unexecuted instantiation: config.c:atomic_counter_sub Unexecuted instantiation: control.c:atomic_counter_sub Unexecuted instantiation: control_auth.c:atomic_counter_sub Unexecuted instantiation: control_bootstrap.c:atomic_counter_sub Unexecuted instantiation: control_cmd.c:atomic_counter_sub Unexecuted instantiation: control_events.c:atomic_counter_sub Unexecuted instantiation: control_fmt.c:atomic_counter_sub Unexecuted instantiation: control_getinfo.c:atomic_counter_sub Unexecuted instantiation: control_hs.c:atomic_counter_sub Unexecuted instantiation: control_proto.c:atomic_counter_sub Unexecuted instantiation: describe.c:atomic_counter_sub Unexecuted instantiation: dirauth_config.c:atomic_counter_sub Unexecuted instantiation: dirauth_periodic.c:atomic_counter_sub Unexecuted instantiation: dirauth_sys.c:atomic_counter_sub Unexecuted instantiation: dirclient.c:atomic_counter_sub Unexecuted instantiation: dirclient_modes.c:atomic_counter_sub Unexecuted instantiation: directory.c:atomic_counter_sub Unexecuted instantiation: dirlist.c:atomic_counter_sub Unexecuted instantiation: dirserv.c:atomic_counter_sub Unexecuted instantiation: dirvote.c:atomic_counter_sub Unexecuted instantiation: dlstatus.c:atomic_counter_sub Unexecuted instantiation: dns.c:atomic_counter_sub Unexecuted instantiation: dnsserv.c:atomic_counter_sub Unexecuted instantiation: dsigs_parse.c:atomic_counter_sub Unexecuted instantiation: entrynodes.c:atomic_counter_sub Unexecuted instantiation: fmt_routerstatus.c:atomic_counter_sub Unexecuted instantiation: geoip_stats.c:atomic_counter_sub Unexecuted instantiation: getinfo_geoip.c:atomic_counter_sub Unexecuted instantiation: guardfraction.c:atomic_counter_sub Unexecuted instantiation: hibernate.c:atomic_counter_sub Unexecuted instantiation: hs_cache.c:atomic_counter_sub Unexecuted instantiation: hs_client.c:atomic_counter_sub Unexecuted instantiation: hs_common.c:atomic_counter_sub Unexecuted instantiation: hs_config.c:atomic_counter_sub Unexecuted instantiation: hs_control.c:atomic_counter_sub Unexecuted instantiation: hs_descriptor.c:atomic_counter_sub Unexecuted instantiation: hs_ident.c:atomic_counter_sub Unexecuted instantiation: hs_ob.c:atomic_counter_sub Unexecuted instantiation: hs_pow.c:atomic_counter_sub Unexecuted instantiation: hs_service.c:atomic_counter_sub Unexecuted instantiation: hs_stats.c:atomic_counter_sub Unexecuted instantiation: loadkey.c:atomic_counter_sub Unexecuted instantiation: main.c:atomic_counter_sub Unexecuted instantiation: metrics.c:atomic_counter_sub Unexecuted instantiation: microdesc.c:atomic_counter_sub Unexecuted instantiation: microdesc_parse.c:atomic_counter_sub Unexecuted instantiation: networkstatus.c:atomic_counter_sub Unexecuted instantiation: nickname.c:atomic_counter_sub Unexecuted instantiation: node_select.c:atomic_counter_sub Unexecuted instantiation: nodefamily.c:atomic_counter_sub Unexecuted instantiation: nodelist.c:atomic_counter_sub Unexecuted instantiation: ns_parse.c:atomic_counter_sub Unexecuted instantiation: onion_queue.c:atomic_counter_sub Unexecuted instantiation: predict_ports.c:atomic_counter_sub Unexecuted instantiation: process_descs.c:atomic_counter_sub Unexecuted instantiation: reachability.c:atomic_counter_sub Unexecuted instantiation: recommend_pkg.c:atomic_counter_sub Unexecuted instantiation: relay_config.c:atomic_counter_sub Unexecuted instantiation: relay_find_addr.c:atomic_counter_sub Unexecuted instantiation: rendcommon.c:atomic_counter_sub Unexecuted instantiation: rendmid.c:atomic_counter_sub Unexecuted instantiation: rephist.c:atomic_counter_sub Unexecuted instantiation: replaycache.c:atomic_counter_sub Unexecuted instantiation: resolve_addr.c:atomic_counter_sub Unexecuted instantiation: router.c:atomic_counter_sub Unexecuted instantiation: routerinfo.c:atomic_counter_sub Unexecuted instantiation: routerkeys.c:atomic_counter_sub Unexecuted instantiation: routerlist.c:atomic_counter_sub Unexecuted instantiation: routermode.c:atomic_counter_sub Unexecuted instantiation: routerparse.c:atomic_counter_sub Unexecuted instantiation: routerset.c:atomic_counter_sub Unexecuted instantiation: selftest.c:atomic_counter_sub Unexecuted instantiation: shared_random.c:atomic_counter_sub Unexecuted instantiation: shared_random_client.c:atomic_counter_sub Unexecuted instantiation: shared_random_state.c:atomic_counter_sub Unexecuted instantiation: shutdown.c:atomic_counter_sub Unexecuted instantiation: sigcommon.c:atomic_counter_sub Unexecuted instantiation: signing.c:atomic_counter_sub Unexecuted instantiation: statefile.c:atomic_counter_sub Unexecuted instantiation: torcert.c:atomic_counter_sub Unexecuted instantiation: transport_config.c:atomic_counter_sub Unexecuted instantiation: transports.c:atomic_counter_sub Unexecuted instantiation: unparseable.c:atomic_counter_sub Unexecuted instantiation: voteflags.c:atomic_counter_sub Unexecuted instantiation: voting_schedule.c:atomic_counter_sub Unexecuted instantiation: channel.c:atomic_counter_sub Unexecuted instantiation: channelpadding.c:atomic_counter_sub Unexecuted instantiation: channeltls.c:atomic_counter_sub Unexecuted instantiation: circuitbuild.c:atomic_counter_sub Unexecuted instantiation: circuitlist.c:atomic_counter_sub Unexecuted instantiation: circuitmux.c:atomic_counter_sub Unexecuted instantiation: circuitmux_ewma.c:atomic_counter_sub Unexecuted instantiation: circuitpadding.c:atomic_counter_sub Unexecuted instantiation: circuitpadding_machines.c:atomic_counter_sub Unexecuted instantiation: circuitstats.c:atomic_counter_sub Unexecuted instantiation: circuituse.c:atomic_counter_sub Unexecuted instantiation: command.c:atomic_counter_sub Unexecuted instantiation: conflux.c:atomic_counter_sub Unexecuted instantiation: conflux_cell.c:atomic_counter_sub Unexecuted instantiation: conflux_params.c:atomic_counter_sub Unexecuted instantiation: conflux_pool.c:atomic_counter_sub Unexecuted instantiation: conflux_sys.c:atomic_counter_sub Unexecuted instantiation: conflux_util.c:atomic_counter_sub Unexecuted instantiation: congestion_control_common.c:atomic_counter_sub Unexecuted instantiation: congestion_control_flow.c:atomic_counter_sub Unexecuted instantiation: congestion_control_vegas.c:atomic_counter_sub Unexecuted instantiation: connection.c:atomic_counter_sub Unexecuted instantiation: connection_edge.c:atomic_counter_sub Unexecuted instantiation: connection_or.c:atomic_counter_sub Unexecuted instantiation: cpuworker.c:atomic_counter_sub Unexecuted instantiation: crypt_path.c:atomic_counter_sub Unexecuted instantiation: dos.c:atomic_counter_sub Unexecuted instantiation: dos_sys.c:atomic_counter_sub Unexecuted instantiation: extendinfo.c:atomic_counter_sub Unexecuted instantiation: hs_ntor.c:atomic_counter_sub Unexecuted instantiation: mainloop.c:atomic_counter_sub Unexecuted instantiation: mainloop_pubsub.c:atomic_counter_sub Unexecuted instantiation: mainloop_sys.c:atomic_counter_sub Unexecuted instantiation: netstatus.c:atomic_counter_sub Unexecuted instantiation: ocirc_event.c:atomic_counter_sub Unexecuted instantiation: onion.c:atomic_counter_sub Unexecuted instantiation: onion_crypto.c:atomic_counter_sub Unexecuted instantiation: onion_fast.c:atomic_counter_sub Unexecuted instantiation: or_sys.c:atomic_counter_sub Unexecuted instantiation: orconn_event.c:atomic_counter_sub Unexecuted instantiation: periodic.c:atomic_counter_sub Unexecuted instantiation: policies.c:atomic_counter_sub Unexecuted instantiation: proto_cell.c:atomic_counter_sub Unexecuted instantiation: proto_control0.c:atomic_counter_sub Unexecuted instantiation: proto_http.c:atomic_counter_sub Unexecuted instantiation: proto_socks.c:atomic_counter_sub Unexecuted instantiation: protover.c:atomic_counter_sub Unexecuted instantiation: reasons.c:atomic_counter_sub Unexecuted instantiation: relay.c:atomic_counter_sub Unexecuted instantiation: relay_crypto.c:atomic_counter_sub Unexecuted instantiation: relay_crypto_cgo.c:atomic_counter_sub Unexecuted instantiation: relay_crypto_tor1.c:atomic_counter_sub Unexecuted instantiation: relay_msg.c:atomic_counter_sub Unexecuted instantiation: scheduler.c:atomic_counter_sub Unexecuted instantiation: scheduler_kist.c:atomic_counter_sub Unexecuted instantiation: scheduler_vanilla.c:atomic_counter_sub Unexecuted instantiation: sendme.c:atomic_counter_sub Unexecuted instantiation: status.c:atomic_counter_sub Unexecuted instantiation: versions.c:atomic_counter_sub Unexecuted instantiation: compress.c:atomic_counter_sub Unexecuted instantiation: compress_lzma.c:atomic_counter_sub Unexecuted instantiation: compress_zlib.c:atomic_counter_sub Unexecuted instantiation: compress_zstd.c:atomic_counter_sub Unexecuted instantiation: crypto_openssl_mgt.c:atomic_counter_sub Unexecuted instantiation: crypto_rand_fast.c:atomic_counter_sub Unexecuted instantiation: workqueue.c:atomic_counter_sub Unexecuted instantiation: util_bug.c:atomic_counter_sub Unexecuted instantiation: daemon.c:atomic_counter_sub Unexecuted instantiation: compat_pthreads.c:atomic_counter_sub Unexecuted instantiation: compat_threads.c:atomic_counter_sub Unexecuted instantiation: addressmap.c:atomic_counter_sub Unexecuted instantiation: authcert.c:atomic_counter_sub Unexecuted instantiation: authcert_parse.c:atomic_counter_sub Unexecuted instantiation: authmode.c:atomic_counter_sub Unexecuted instantiation: bridgeauth.c:atomic_counter_sub Unexecuted instantiation: bridges.c:atomic_counter_sub Unexecuted instantiation: btrack_circuit.c:atomic_counter_sub Unexecuted instantiation: btrack_orconn.c:atomic_counter_sub Unexecuted instantiation: btrack_orconn_cevent.c:atomic_counter_sub Unexecuted instantiation: btrack_orconn_maps.c:atomic_counter_sub Unexecuted instantiation: bwauth.c:atomic_counter_sub Unexecuted instantiation: bwhist.c:atomic_counter_sub Unexecuted instantiation: circpathbias.c:atomic_counter_sub Unexecuted instantiation: circuitbuild_relay.c:atomic_counter_sub Unexecuted instantiation: connstats.c:atomic_counter_sub Unexecuted instantiation: conscache.c:atomic_counter_sub Unexecuted instantiation: consdiff.c:atomic_counter_sub Unexecuted instantiation: consdiffmgr.c:atomic_counter_sub Unexecuted instantiation: dircache.c:atomic_counter_sub Unexecuted instantiation: dircollate.c:atomic_counter_sub Unexecuted instantiation: ext_orport.c:atomic_counter_sub Unexecuted instantiation: fp_pair.c:atomic_counter_sub Unexecuted instantiation: hs_cell.c:atomic_counter_sub Unexecuted instantiation: hs_circuit.c:atomic_counter_sub Unexecuted instantiation: hs_circuitmap.c:atomic_counter_sub Unexecuted instantiation: hs_dos.c:atomic_counter_sub Unexecuted instantiation: hs_intropoint.c:atomic_counter_sub Unexecuted instantiation: hs_metrics.c:atomic_counter_sub Unexecuted instantiation: hs_sys.c:atomic_counter_sub Unexecuted instantiation: metrics_sys.c:atomic_counter_sub Unexecuted instantiation: policy_parse.c:atomic_counter_sub Unexecuted instantiation: proxymode.c:atomic_counter_sub Unexecuted instantiation: relay_handshake.c:atomic_counter_sub Unexecuted instantiation: relay_metrics.c:atomic_counter_sub Unexecuted instantiation: relay_periodic.c:atomic_counter_sub Unexecuted instantiation: relay_sys.c:atomic_counter_sub Unexecuted instantiation: or_periodic.c:atomic_counter_sub Unexecuted instantiation: proto_ext_or.c:atomic_counter_sub Unexecuted instantiation: fuzz_diff_apply.c:atomic_counter_sub Unexecuted instantiation: fuzz_http_connect.c:atomic_counter_sub Unexecuted instantiation: fuzz_extrainfo.c:atomic_counter_sub Unexecuted instantiation: fuzz_http.c:atomic_counter_sub Unexecuted instantiation: fuzz_descriptor.c:atomic_counter_sub Unexecuted instantiation: fuzz_socks.c:atomic_counter_sub Unexecuted instantiation: fuzz_hsdescv3.c:atomic_counter_sub Unexecuted instantiation: fuzz_hsdescv3_middle.c:atomic_counter_sub Unexecuted instantiation: fuzz_diff.c:atomic_counter_sub Unexecuted instantiation: fuzz_hsdescv3_inner.c:atomic_counter_sub Unexecuted instantiation: fuzz_microdesc.c:atomic_counter_sub Unexecuted instantiation: fuzz_consensus.c:atomic_counter_sub Unexecuted instantiation: fuzz_vrs.c:atomic_counter_sub |
159 | | /** Return the current value of an atomic counter */ |
160 | | static inline size_t |
161 | | atomic_counter_get(atomic_counter_t *counter) |
162 | 27.2k | { |
163 | 27.2k | return atomic_load(&counter->val); |
164 | 27.2k | } Unexecuted instantiation: fuzzing_common.c:atomic_counter_get config.c:atomic_counter_get Line | Count | Source | 162 | 27.2k | { | 163 | | return atomic_load(&counter->val); | 164 | 27.2k | } |
Unexecuted instantiation: control.c:atomic_counter_get Unexecuted instantiation: control_auth.c:atomic_counter_get Unexecuted instantiation: control_bootstrap.c:atomic_counter_get Unexecuted instantiation: control_cmd.c:atomic_counter_get Unexecuted instantiation: control_events.c:atomic_counter_get Unexecuted instantiation: control_fmt.c:atomic_counter_get Unexecuted instantiation: control_getinfo.c:atomic_counter_get Unexecuted instantiation: control_hs.c:atomic_counter_get Unexecuted instantiation: control_proto.c:atomic_counter_get Unexecuted instantiation: describe.c:atomic_counter_get Unexecuted instantiation: dirauth_config.c:atomic_counter_get Unexecuted instantiation: dirauth_periodic.c:atomic_counter_get Unexecuted instantiation: dirauth_sys.c:atomic_counter_get Unexecuted instantiation: dirclient.c:atomic_counter_get Unexecuted instantiation: dirclient_modes.c:atomic_counter_get Unexecuted instantiation: directory.c:atomic_counter_get Unexecuted instantiation: dirlist.c:atomic_counter_get Unexecuted instantiation: dirserv.c:atomic_counter_get Unexecuted instantiation: dirvote.c:atomic_counter_get Unexecuted instantiation: dlstatus.c:atomic_counter_get Unexecuted instantiation: dns.c:atomic_counter_get Unexecuted instantiation: dnsserv.c:atomic_counter_get Unexecuted instantiation: dsigs_parse.c:atomic_counter_get Unexecuted instantiation: entrynodes.c:atomic_counter_get Unexecuted instantiation: fmt_routerstatus.c:atomic_counter_get Unexecuted instantiation: geoip_stats.c:atomic_counter_get Unexecuted instantiation: getinfo_geoip.c:atomic_counter_get Unexecuted instantiation: guardfraction.c:atomic_counter_get Unexecuted instantiation: hibernate.c:atomic_counter_get Unexecuted instantiation: hs_cache.c:atomic_counter_get Unexecuted instantiation: hs_client.c:atomic_counter_get Unexecuted instantiation: hs_common.c:atomic_counter_get Unexecuted instantiation: hs_config.c:atomic_counter_get Unexecuted instantiation: hs_control.c:atomic_counter_get Unexecuted instantiation: hs_descriptor.c:atomic_counter_get Unexecuted instantiation: hs_ident.c:atomic_counter_get Unexecuted instantiation: hs_ob.c:atomic_counter_get Unexecuted instantiation: hs_pow.c:atomic_counter_get Unexecuted instantiation: hs_service.c:atomic_counter_get Unexecuted instantiation: hs_stats.c:atomic_counter_get Unexecuted instantiation: loadkey.c:atomic_counter_get Unexecuted instantiation: main.c:atomic_counter_get Unexecuted instantiation: metrics.c:atomic_counter_get Unexecuted instantiation: microdesc.c:atomic_counter_get Unexecuted instantiation: microdesc_parse.c:atomic_counter_get Unexecuted instantiation: networkstatus.c:atomic_counter_get Unexecuted instantiation: nickname.c:atomic_counter_get Unexecuted instantiation: node_select.c:atomic_counter_get Unexecuted instantiation: nodefamily.c:atomic_counter_get Unexecuted instantiation: nodelist.c:atomic_counter_get Unexecuted instantiation: ns_parse.c:atomic_counter_get Unexecuted instantiation: onion_queue.c:atomic_counter_get Unexecuted instantiation: predict_ports.c:atomic_counter_get Unexecuted instantiation: process_descs.c:atomic_counter_get Unexecuted instantiation: reachability.c:atomic_counter_get Unexecuted instantiation: recommend_pkg.c:atomic_counter_get Unexecuted instantiation: relay_config.c:atomic_counter_get Unexecuted instantiation: relay_find_addr.c:atomic_counter_get Unexecuted instantiation: rendcommon.c:atomic_counter_get Unexecuted instantiation: rendmid.c:atomic_counter_get Unexecuted instantiation: rephist.c:atomic_counter_get Unexecuted instantiation: replaycache.c:atomic_counter_get Unexecuted instantiation: resolve_addr.c:atomic_counter_get Unexecuted instantiation: router.c:atomic_counter_get Unexecuted instantiation: routerinfo.c:atomic_counter_get Unexecuted instantiation: routerkeys.c:atomic_counter_get Unexecuted instantiation: routerlist.c:atomic_counter_get Unexecuted instantiation: routermode.c:atomic_counter_get Unexecuted instantiation: routerparse.c:atomic_counter_get Unexecuted instantiation: routerset.c:atomic_counter_get Unexecuted instantiation: selftest.c:atomic_counter_get Unexecuted instantiation: shared_random.c:atomic_counter_get Unexecuted instantiation: shared_random_client.c:atomic_counter_get Unexecuted instantiation: shared_random_state.c:atomic_counter_get Unexecuted instantiation: shutdown.c:atomic_counter_get Unexecuted instantiation: sigcommon.c:atomic_counter_get Unexecuted instantiation: signing.c:atomic_counter_get Unexecuted instantiation: statefile.c:atomic_counter_get Unexecuted instantiation: torcert.c:atomic_counter_get Unexecuted instantiation: transport_config.c:atomic_counter_get Unexecuted instantiation: transports.c:atomic_counter_get Unexecuted instantiation: unparseable.c:atomic_counter_get Unexecuted instantiation: voteflags.c:atomic_counter_get Unexecuted instantiation: voting_schedule.c:atomic_counter_get Unexecuted instantiation: channel.c:atomic_counter_get Unexecuted instantiation: channelpadding.c:atomic_counter_get Unexecuted instantiation: channeltls.c:atomic_counter_get Unexecuted instantiation: circuitbuild.c:atomic_counter_get Unexecuted instantiation: circuitlist.c:atomic_counter_get Unexecuted instantiation: circuitmux.c:atomic_counter_get Unexecuted instantiation: circuitmux_ewma.c:atomic_counter_get Unexecuted instantiation: circuitpadding.c:atomic_counter_get Unexecuted instantiation: circuitpadding_machines.c:atomic_counter_get Unexecuted instantiation: circuitstats.c:atomic_counter_get Unexecuted instantiation: circuituse.c:atomic_counter_get Unexecuted instantiation: command.c:atomic_counter_get Unexecuted instantiation: conflux.c:atomic_counter_get Unexecuted instantiation: conflux_cell.c:atomic_counter_get Unexecuted instantiation: conflux_params.c:atomic_counter_get Unexecuted instantiation: conflux_pool.c:atomic_counter_get Unexecuted instantiation: conflux_sys.c:atomic_counter_get Unexecuted instantiation: conflux_util.c:atomic_counter_get Unexecuted instantiation: congestion_control_common.c:atomic_counter_get Unexecuted instantiation: congestion_control_flow.c:atomic_counter_get Unexecuted instantiation: congestion_control_vegas.c:atomic_counter_get Unexecuted instantiation: connection.c:atomic_counter_get Unexecuted instantiation: connection_edge.c:atomic_counter_get Unexecuted instantiation: connection_or.c:atomic_counter_get Unexecuted instantiation: cpuworker.c:atomic_counter_get Unexecuted instantiation: crypt_path.c:atomic_counter_get Unexecuted instantiation: dos.c:atomic_counter_get Unexecuted instantiation: dos_sys.c:atomic_counter_get Unexecuted instantiation: extendinfo.c:atomic_counter_get Unexecuted instantiation: hs_ntor.c:atomic_counter_get Unexecuted instantiation: mainloop.c:atomic_counter_get Unexecuted instantiation: mainloop_pubsub.c:atomic_counter_get Unexecuted instantiation: mainloop_sys.c:atomic_counter_get Unexecuted instantiation: netstatus.c:atomic_counter_get Unexecuted instantiation: ocirc_event.c:atomic_counter_get Unexecuted instantiation: onion.c:atomic_counter_get Unexecuted instantiation: onion_crypto.c:atomic_counter_get Unexecuted instantiation: onion_fast.c:atomic_counter_get Unexecuted instantiation: or_sys.c:atomic_counter_get Unexecuted instantiation: orconn_event.c:atomic_counter_get Unexecuted instantiation: periodic.c:atomic_counter_get Unexecuted instantiation: policies.c:atomic_counter_get Unexecuted instantiation: proto_cell.c:atomic_counter_get Unexecuted instantiation: proto_control0.c:atomic_counter_get Unexecuted instantiation: proto_http.c:atomic_counter_get Unexecuted instantiation: proto_socks.c:atomic_counter_get Unexecuted instantiation: protover.c:atomic_counter_get Unexecuted instantiation: reasons.c:atomic_counter_get Unexecuted instantiation: relay.c:atomic_counter_get Unexecuted instantiation: relay_crypto.c:atomic_counter_get Unexecuted instantiation: relay_crypto_cgo.c:atomic_counter_get Unexecuted instantiation: relay_crypto_tor1.c:atomic_counter_get Unexecuted instantiation: relay_msg.c:atomic_counter_get Unexecuted instantiation: scheduler.c:atomic_counter_get Unexecuted instantiation: scheduler_kist.c:atomic_counter_get Unexecuted instantiation: scheduler_vanilla.c:atomic_counter_get Unexecuted instantiation: sendme.c:atomic_counter_get Unexecuted instantiation: status.c:atomic_counter_get Unexecuted instantiation: versions.c:atomic_counter_get Unexecuted instantiation: compress.c:atomic_counter_get Unexecuted instantiation: compress_lzma.c:atomic_counter_get Unexecuted instantiation: compress_zlib.c:atomic_counter_get Unexecuted instantiation: compress_zstd.c:atomic_counter_get Unexecuted instantiation: crypto_openssl_mgt.c:atomic_counter_get Unexecuted instantiation: crypto_rand_fast.c:atomic_counter_get Unexecuted instantiation: workqueue.c:atomic_counter_get Unexecuted instantiation: util_bug.c:atomic_counter_get Unexecuted instantiation: daemon.c:atomic_counter_get Unexecuted instantiation: compat_pthreads.c:atomic_counter_get Unexecuted instantiation: compat_threads.c:atomic_counter_get Unexecuted instantiation: addressmap.c:atomic_counter_get Unexecuted instantiation: authcert.c:atomic_counter_get Unexecuted instantiation: authcert_parse.c:atomic_counter_get Unexecuted instantiation: authmode.c:atomic_counter_get Unexecuted instantiation: bridgeauth.c:atomic_counter_get Unexecuted instantiation: bridges.c:atomic_counter_get Unexecuted instantiation: btrack_circuit.c:atomic_counter_get Unexecuted instantiation: btrack_orconn.c:atomic_counter_get Unexecuted instantiation: btrack_orconn_cevent.c:atomic_counter_get Unexecuted instantiation: btrack_orconn_maps.c:atomic_counter_get Unexecuted instantiation: bwauth.c:atomic_counter_get Unexecuted instantiation: bwhist.c:atomic_counter_get Unexecuted instantiation: circpathbias.c:atomic_counter_get Unexecuted instantiation: circuitbuild_relay.c:atomic_counter_get Unexecuted instantiation: connstats.c:atomic_counter_get Unexecuted instantiation: conscache.c:atomic_counter_get Unexecuted instantiation: consdiff.c:atomic_counter_get Unexecuted instantiation: consdiffmgr.c:atomic_counter_get Unexecuted instantiation: dircache.c:atomic_counter_get Unexecuted instantiation: dircollate.c:atomic_counter_get Unexecuted instantiation: ext_orport.c:atomic_counter_get Unexecuted instantiation: fp_pair.c:atomic_counter_get Unexecuted instantiation: hs_cell.c:atomic_counter_get Unexecuted instantiation: hs_circuit.c:atomic_counter_get Unexecuted instantiation: hs_circuitmap.c:atomic_counter_get Unexecuted instantiation: hs_dos.c:atomic_counter_get Unexecuted instantiation: hs_intropoint.c:atomic_counter_get Unexecuted instantiation: hs_metrics.c:atomic_counter_get Unexecuted instantiation: hs_sys.c:atomic_counter_get Unexecuted instantiation: metrics_sys.c:atomic_counter_get Unexecuted instantiation: policy_parse.c:atomic_counter_get Unexecuted instantiation: proxymode.c:atomic_counter_get Unexecuted instantiation: relay_handshake.c:atomic_counter_get Unexecuted instantiation: relay_metrics.c:atomic_counter_get Unexecuted instantiation: relay_periodic.c:atomic_counter_get Unexecuted instantiation: relay_sys.c:atomic_counter_get Unexecuted instantiation: or_periodic.c:atomic_counter_get Unexecuted instantiation: proto_ext_or.c:atomic_counter_get Unexecuted instantiation: fuzz_diff_apply.c:atomic_counter_get Unexecuted instantiation: fuzz_http_connect.c:atomic_counter_get Unexecuted instantiation: fuzz_extrainfo.c:atomic_counter_get Unexecuted instantiation: fuzz_http.c:atomic_counter_get Unexecuted instantiation: fuzz_descriptor.c:atomic_counter_get Unexecuted instantiation: fuzz_socks.c:atomic_counter_get Unexecuted instantiation: fuzz_hsdescv3.c:atomic_counter_get Unexecuted instantiation: fuzz_hsdescv3_middle.c:atomic_counter_get Unexecuted instantiation: fuzz_diff.c:atomic_counter_get Unexecuted instantiation: fuzz_hsdescv3_inner.c:atomic_counter_get Unexecuted instantiation: fuzz_microdesc.c:atomic_counter_get Unexecuted instantiation: fuzz_consensus.c:atomic_counter_get Unexecuted instantiation: fuzz_vrs.c:atomic_counter_get |
165 | | /** Replace the value of an atomic counter; return the old one. */ |
166 | | static inline size_t |
167 | | atomic_counter_exchange(atomic_counter_t *counter, size_t newval) |
168 | 16 | { |
169 | | return atomic_exchange(&counter->val, newval); |
170 | 16 | } Unexecuted instantiation: fuzzing_common.c:atomic_counter_exchange config.c:atomic_counter_exchange Line | Count | Source | 168 | 16 | { | 169 | | return atomic_exchange(&counter->val, newval); | 170 | 16 | } |
Unexecuted instantiation: control.c:atomic_counter_exchange Unexecuted instantiation: control_auth.c:atomic_counter_exchange Unexecuted instantiation: control_bootstrap.c:atomic_counter_exchange Unexecuted instantiation: control_cmd.c:atomic_counter_exchange Unexecuted instantiation: control_events.c:atomic_counter_exchange Unexecuted instantiation: control_fmt.c:atomic_counter_exchange Unexecuted instantiation: control_getinfo.c:atomic_counter_exchange Unexecuted instantiation: control_hs.c:atomic_counter_exchange Unexecuted instantiation: control_proto.c:atomic_counter_exchange Unexecuted instantiation: describe.c:atomic_counter_exchange Unexecuted instantiation: dirauth_config.c:atomic_counter_exchange Unexecuted instantiation: dirauth_periodic.c:atomic_counter_exchange Unexecuted instantiation: dirauth_sys.c:atomic_counter_exchange Unexecuted instantiation: dirclient.c:atomic_counter_exchange Unexecuted instantiation: dirclient_modes.c:atomic_counter_exchange Unexecuted instantiation: directory.c:atomic_counter_exchange Unexecuted instantiation: dirlist.c:atomic_counter_exchange Unexecuted instantiation: dirserv.c:atomic_counter_exchange Unexecuted instantiation: dirvote.c:atomic_counter_exchange Unexecuted instantiation: dlstatus.c:atomic_counter_exchange Unexecuted instantiation: dns.c:atomic_counter_exchange Unexecuted instantiation: dnsserv.c:atomic_counter_exchange Unexecuted instantiation: dsigs_parse.c:atomic_counter_exchange Unexecuted instantiation: entrynodes.c:atomic_counter_exchange Unexecuted instantiation: fmt_routerstatus.c:atomic_counter_exchange Unexecuted instantiation: geoip_stats.c:atomic_counter_exchange Unexecuted instantiation: getinfo_geoip.c:atomic_counter_exchange Unexecuted instantiation: guardfraction.c:atomic_counter_exchange Unexecuted instantiation: hibernate.c:atomic_counter_exchange Unexecuted instantiation: hs_cache.c:atomic_counter_exchange Unexecuted instantiation: hs_client.c:atomic_counter_exchange Unexecuted instantiation: hs_common.c:atomic_counter_exchange Unexecuted instantiation: hs_config.c:atomic_counter_exchange Unexecuted instantiation: hs_control.c:atomic_counter_exchange Unexecuted instantiation: hs_descriptor.c:atomic_counter_exchange Unexecuted instantiation: hs_ident.c:atomic_counter_exchange Unexecuted instantiation: hs_ob.c:atomic_counter_exchange Unexecuted instantiation: hs_pow.c:atomic_counter_exchange Unexecuted instantiation: hs_service.c:atomic_counter_exchange Unexecuted instantiation: hs_stats.c:atomic_counter_exchange Unexecuted instantiation: loadkey.c:atomic_counter_exchange Unexecuted instantiation: main.c:atomic_counter_exchange Unexecuted instantiation: metrics.c:atomic_counter_exchange Unexecuted instantiation: microdesc.c:atomic_counter_exchange Unexecuted instantiation: microdesc_parse.c:atomic_counter_exchange Unexecuted instantiation: networkstatus.c:atomic_counter_exchange Unexecuted instantiation: nickname.c:atomic_counter_exchange Unexecuted instantiation: node_select.c:atomic_counter_exchange Unexecuted instantiation: nodefamily.c:atomic_counter_exchange Unexecuted instantiation: nodelist.c:atomic_counter_exchange Unexecuted instantiation: ns_parse.c:atomic_counter_exchange Unexecuted instantiation: onion_queue.c:atomic_counter_exchange Unexecuted instantiation: predict_ports.c:atomic_counter_exchange Unexecuted instantiation: process_descs.c:atomic_counter_exchange Unexecuted instantiation: reachability.c:atomic_counter_exchange Unexecuted instantiation: recommend_pkg.c:atomic_counter_exchange Unexecuted instantiation: relay_config.c:atomic_counter_exchange Unexecuted instantiation: relay_find_addr.c:atomic_counter_exchange Unexecuted instantiation: rendcommon.c:atomic_counter_exchange Unexecuted instantiation: rendmid.c:atomic_counter_exchange Unexecuted instantiation: rephist.c:atomic_counter_exchange Unexecuted instantiation: replaycache.c:atomic_counter_exchange Unexecuted instantiation: resolve_addr.c:atomic_counter_exchange Unexecuted instantiation: router.c:atomic_counter_exchange Unexecuted instantiation: routerinfo.c:atomic_counter_exchange Unexecuted instantiation: routerkeys.c:atomic_counter_exchange Unexecuted instantiation: routerlist.c:atomic_counter_exchange Unexecuted instantiation: routermode.c:atomic_counter_exchange Unexecuted instantiation: routerparse.c:atomic_counter_exchange Unexecuted instantiation: routerset.c:atomic_counter_exchange Unexecuted instantiation: selftest.c:atomic_counter_exchange Unexecuted instantiation: shared_random.c:atomic_counter_exchange Unexecuted instantiation: shared_random_client.c:atomic_counter_exchange Unexecuted instantiation: shared_random_state.c:atomic_counter_exchange Unexecuted instantiation: shutdown.c:atomic_counter_exchange Unexecuted instantiation: sigcommon.c:atomic_counter_exchange Unexecuted instantiation: signing.c:atomic_counter_exchange Unexecuted instantiation: statefile.c:atomic_counter_exchange Unexecuted instantiation: torcert.c:atomic_counter_exchange Unexecuted instantiation: transport_config.c:atomic_counter_exchange Unexecuted instantiation: transports.c:atomic_counter_exchange Unexecuted instantiation: unparseable.c:atomic_counter_exchange Unexecuted instantiation: voteflags.c:atomic_counter_exchange Unexecuted instantiation: voting_schedule.c:atomic_counter_exchange Unexecuted instantiation: channel.c:atomic_counter_exchange Unexecuted instantiation: channelpadding.c:atomic_counter_exchange Unexecuted instantiation: channeltls.c:atomic_counter_exchange Unexecuted instantiation: circuitbuild.c:atomic_counter_exchange Unexecuted instantiation: circuitlist.c:atomic_counter_exchange Unexecuted instantiation: circuitmux.c:atomic_counter_exchange Unexecuted instantiation: circuitmux_ewma.c:atomic_counter_exchange Unexecuted instantiation: circuitpadding.c:atomic_counter_exchange Unexecuted instantiation: circuitpadding_machines.c:atomic_counter_exchange Unexecuted instantiation: circuitstats.c:atomic_counter_exchange Unexecuted instantiation: circuituse.c:atomic_counter_exchange Unexecuted instantiation: command.c:atomic_counter_exchange Unexecuted instantiation: conflux.c:atomic_counter_exchange Unexecuted instantiation: conflux_cell.c:atomic_counter_exchange Unexecuted instantiation: conflux_params.c:atomic_counter_exchange Unexecuted instantiation: conflux_pool.c:atomic_counter_exchange Unexecuted instantiation: conflux_sys.c:atomic_counter_exchange Unexecuted instantiation: conflux_util.c:atomic_counter_exchange Unexecuted instantiation: congestion_control_common.c:atomic_counter_exchange Unexecuted instantiation: congestion_control_flow.c:atomic_counter_exchange Unexecuted instantiation: congestion_control_vegas.c:atomic_counter_exchange Unexecuted instantiation: connection.c:atomic_counter_exchange Unexecuted instantiation: connection_edge.c:atomic_counter_exchange Unexecuted instantiation: connection_or.c:atomic_counter_exchange Unexecuted instantiation: cpuworker.c:atomic_counter_exchange Unexecuted instantiation: crypt_path.c:atomic_counter_exchange Unexecuted instantiation: dos.c:atomic_counter_exchange Unexecuted instantiation: dos_sys.c:atomic_counter_exchange Unexecuted instantiation: extendinfo.c:atomic_counter_exchange Unexecuted instantiation: hs_ntor.c:atomic_counter_exchange Unexecuted instantiation: mainloop.c:atomic_counter_exchange Unexecuted instantiation: mainloop_pubsub.c:atomic_counter_exchange Unexecuted instantiation: mainloop_sys.c:atomic_counter_exchange Unexecuted instantiation: netstatus.c:atomic_counter_exchange Unexecuted instantiation: ocirc_event.c:atomic_counter_exchange Unexecuted instantiation: onion.c:atomic_counter_exchange Unexecuted instantiation: onion_crypto.c:atomic_counter_exchange Unexecuted instantiation: onion_fast.c:atomic_counter_exchange Unexecuted instantiation: or_sys.c:atomic_counter_exchange Unexecuted instantiation: orconn_event.c:atomic_counter_exchange Unexecuted instantiation: periodic.c:atomic_counter_exchange Unexecuted instantiation: policies.c:atomic_counter_exchange Unexecuted instantiation: proto_cell.c:atomic_counter_exchange Unexecuted instantiation: proto_control0.c:atomic_counter_exchange Unexecuted instantiation: proto_http.c:atomic_counter_exchange Unexecuted instantiation: proto_socks.c:atomic_counter_exchange Unexecuted instantiation: protover.c:atomic_counter_exchange Unexecuted instantiation: reasons.c:atomic_counter_exchange Unexecuted instantiation: relay.c:atomic_counter_exchange Unexecuted instantiation: relay_crypto.c:atomic_counter_exchange Unexecuted instantiation: relay_crypto_cgo.c:atomic_counter_exchange Unexecuted instantiation: relay_crypto_tor1.c:atomic_counter_exchange Unexecuted instantiation: relay_msg.c:atomic_counter_exchange Unexecuted instantiation: scheduler.c:atomic_counter_exchange Unexecuted instantiation: scheduler_kist.c:atomic_counter_exchange Unexecuted instantiation: scheduler_vanilla.c:atomic_counter_exchange Unexecuted instantiation: sendme.c:atomic_counter_exchange Unexecuted instantiation: status.c:atomic_counter_exchange Unexecuted instantiation: versions.c:atomic_counter_exchange Unexecuted instantiation: compress.c:atomic_counter_exchange Unexecuted instantiation: compress_lzma.c:atomic_counter_exchange Unexecuted instantiation: compress_zlib.c:atomic_counter_exchange Unexecuted instantiation: compress_zstd.c:atomic_counter_exchange Unexecuted instantiation: crypto_openssl_mgt.c:atomic_counter_exchange Unexecuted instantiation: crypto_rand_fast.c:atomic_counter_exchange Unexecuted instantiation: workqueue.c:atomic_counter_exchange Unexecuted instantiation: util_bug.c:atomic_counter_exchange Unexecuted instantiation: daemon.c:atomic_counter_exchange Unexecuted instantiation: compat_pthreads.c:atomic_counter_exchange Unexecuted instantiation: compat_threads.c:atomic_counter_exchange Unexecuted instantiation: addressmap.c:atomic_counter_exchange Unexecuted instantiation: authcert.c:atomic_counter_exchange Unexecuted instantiation: authcert_parse.c:atomic_counter_exchange Unexecuted instantiation: authmode.c:atomic_counter_exchange Unexecuted instantiation: bridgeauth.c:atomic_counter_exchange Unexecuted instantiation: bridges.c:atomic_counter_exchange Unexecuted instantiation: btrack_circuit.c:atomic_counter_exchange Unexecuted instantiation: btrack_orconn.c:atomic_counter_exchange Unexecuted instantiation: btrack_orconn_cevent.c:atomic_counter_exchange Unexecuted instantiation: btrack_orconn_maps.c:atomic_counter_exchange Unexecuted instantiation: bwauth.c:atomic_counter_exchange Unexecuted instantiation: bwhist.c:atomic_counter_exchange Unexecuted instantiation: circpathbias.c:atomic_counter_exchange Unexecuted instantiation: circuitbuild_relay.c:atomic_counter_exchange Unexecuted instantiation: connstats.c:atomic_counter_exchange Unexecuted instantiation: conscache.c:atomic_counter_exchange Unexecuted instantiation: consdiff.c:atomic_counter_exchange Unexecuted instantiation: consdiffmgr.c:atomic_counter_exchange Unexecuted instantiation: dircache.c:atomic_counter_exchange Unexecuted instantiation: dircollate.c:atomic_counter_exchange Unexecuted instantiation: ext_orport.c:atomic_counter_exchange Unexecuted instantiation: fp_pair.c:atomic_counter_exchange Unexecuted instantiation: hs_cell.c:atomic_counter_exchange Unexecuted instantiation: hs_circuit.c:atomic_counter_exchange Unexecuted instantiation: hs_circuitmap.c:atomic_counter_exchange Unexecuted instantiation: hs_dos.c:atomic_counter_exchange Unexecuted instantiation: hs_intropoint.c:atomic_counter_exchange Unexecuted instantiation: hs_metrics.c:atomic_counter_exchange Unexecuted instantiation: hs_sys.c:atomic_counter_exchange Unexecuted instantiation: metrics_sys.c:atomic_counter_exchange Unexecuted instantiation: policy_parse.c:atomic_counter_exchange Unexecuted instantiation: proxymode.c:atomic_counter_exchange Unexecuted instantiation: relay_handshake.c:atomic_counter_exchange Unexecuted instantiation: relay_metrics.c:atomic_counter_exchange Unexecuted instantiation: relay_periodic.c:atomic_counter_exchange Unexecuted instantiation: relay_sys.c:atomic_counter_exchange Unexecuted instantiation: or_periodic.c:atomic_counter_exchange Unexecuted instantiation: proto_ext_or.c:atomic_counter_exchange Unexecuted instantiation: fuzz_diff_apply.c:atomic_counter_exchange Unexecuted instantiation: fuzz_http_connect.c:atomic_counter_exchange Unexecuted instantiation: fuzz_extrainfo.c:atomic_counter_exchange Unexecuted instantiation: fuzz_http.c:atomic_counter_exchange Unexecuted instantiation: fuzz_descriptor.c:atomic_counter_exchange Unexecuted instantiation: fuzz_socks.c:atomic_counter_exchange Unexecuted instantiation: fuzz_hsdescv3.c:atomic_counter_exchange Unexecuted instantiation: fuzz_hsdescv3_middle.c:atomic_counter_exchange Unexecuted instantiation: fuzz_diff.c:atomic_counter_exchange Unexecuted instantiation: fuzz_hsdescv3_inner.c:atomic_counter_exchange Unexecuted instantiation: fuzz_microdesc.c:atomic_counter_exchange Unexecuted instantiation: fuzz_consensus.c:atomic_counter_exchange Unexecuted instantiation: fuzz_vrs.c:atomic_counter_exchange |
171 | | |
172 | | #else /* !defined(HAVE_WORKING_STDATOMIC) */ |
173 | | #endif /* defined(HAVE_WORKING_STDATOMIC) */ |
174 | | |
175 | | #endif /* !defined(TOR_COMPAT_THREADS_H) */ |