diff options
author | Nick Mathewson <nickm@torproject.org> | 2017-04-25 10:29:07 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2017-04-25 10:29:07 -0400 |
commit | 4266ec766af8e210ac52f597699b44818960ee39 (patch) | |
tree | 902ce2bd58a59f78b8317e2277ecddbf233cdae3 /src/common/compat_threads.h | |
parent | 91dd4a00f7d4891e24187a849933547128aeeb9f (diff) | |
download | tor-4266ec766af8e210ac52f597699b44818960ee39.tar.gz tor-4266ec766af8e210ac52f597699b44818960ee39.zip |
Use atomic counters for compressor allocation.
Diffstat (limited to 'src/common/compat_threads.h')
-rw-r--r-- | src/common/compat_threads.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/common/compat_threads.h b/src/common/compat_threads.h index 2943573b23..9fa3d0d0b7 100644 --- a/src/common/compat_threads.h +++ b/src/common/compat_threads.h @@ -147,5 +147,19 @@ void *tor_threadlocal_get(tor_threadlocal_t *threadlocal); */ void tor_threadlocal_set(tor_threadlocal_t *threadlocal, void *value); +/** + * Atomic counter type; holds a size_t value. + */ +typedef struct atomic_counter_t { + tor_mutex_t mutex; + size_t val; +} atomic_counter_t; + +void atomic_counter_init(atomic_counter_t *counter); +void atomic_counter_destroy(atomic_counter_t *counter); +void atomic_counter_add(atomic_counter_t *counter, size_t add); +void atomic_counter_sub(atomic_counter_t *counter, size_t sub); +size_t atomic_counter_get(atomic_counter_t *counter); + #endif |