diff options
Diffstat (limited to 'include/apr_atomic.h')
-rw-r--r-- | include/apr_atomic.h | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/include/apr_atomic.h b/include/apr_atomic.h index ec8404840..e0dbabe27 100644 --- a/include/apr_atomic.h +++ b/include/apr_atomic.h @@ -133,7 +133,13 @@ void apr_atomic_dec(volatile apr_atomic_t *mem); apr_uint32_t apr_atomic_cas(volatile apr_uint32_t *mem,long with,long cmp); #else /* !DOXYGEN */ -#ifdef WIN32 +#if APR_FORCE_ATOMIC_GENERIC +#if APR_HAS_THREADS +#define APR_ATOMIC_NEED_DEFAULT 1 +#define APR_ATOMIC_NEED_CAS_DEFAULT 1 +#endif /* APR_HAS_THREADS */ + +#elif defined(WIN32) #define apr_atomic_t LONG; @@ -209,7 +215,13 @@ apr_uint32_t apr_atomic_cas_sparc(volatile apr_uint32_t *mem, long with, long cm #else #if APR_HAS_THREADS +#define APR_ATOMIC_NEED_DEFAULT 1 +#define APR_ATOMIC_NEED_CAS_DEFAULT 1 +#endif /* APR_HAS_THREADS */ + +#endif /* !defined(WIN32) && !defined(__linux) */ +#if defined(APR_ATOMIC_NEED_DEFAULT) #define apr_atomic_t apr_uint32_t #define apr_atomic_read(p) *p apr_status_t apr_atomic_init(apr_pool_t *p); @@ -217,13 +229,7 @@ void apr_atomic_set(volatile apr_atomic_t *mem, apr_uint32_t val); void apr_atomic_add(volatile apr_atomic_t *mem, apr_uint32_t val); void apr_atomic_inc(volatile apr_atomic_t *mem); void apr_atomic_dec(volatile apr_atomic_t *mem); - -#define APR_ATOMIC_NEED_DEFAULT 1 -#define APR_ATOMIC_NEED_CAS_DEFAULT 1 - -#endif /* APR_HAS_THREADS */ - -#endif /* !defined(WIN32) && !defined(__linux) */ +#endif #if defined(APR_ATOMIC_NEED_CAS_DEFAULT) apr_status_t apr_atomic_init(apr_pool_t *p); |