From: Memphis Date: Wed, 13 May 2015 18:32:00 +0000 (+0200) Subject: - add atomic_dec_u64 X-Git-Tag: v4.1~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=83166081e0c207acf966583a804f6b313f241a9e;p=thirdparty%2Ftvheadend.git - add atomic_dec_u64 --- diff --git a/src/atomic.h b/src/atomic.h index 1c3eb5aeb..99fe3af79 100644 --- a/src/atomic.h +++ b/src/atomic.h @@ -51,6 +51,21 @@ atomic_add_u64(volatile uint64_t *ptr, uint64_t incr) #endif } +static inline uint64_t +atomic_dec_u64(volatile uint64_t *ptr, uint64_t decr) +{ +#if ENABLE_ATOMIC64 + return __sync_fetch_and_sub(ptr, decr); +#else + uint64_t ret; + pthread_mutex_lock(&atomic_lock); + ret = *ptr; + *ptr -= decr; + pthread_mutex_unlock(&atomic_lock); + return ret; +#endif +} + static inline uint64_t atomic_pre_add_u64(volatile uint64_t *ptr, uint64_t incr) {