Coverage Report

Created: 2026-10-17 06:59

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/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) */