diff options
Diffstat (limited to 'atomic/unix/mutex.c')
-rw-r--r-- | atomic/unix/mutex.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/atomic/unix/mutex.c b/atomic/unix/mutex.c index 17b605fcd..cb23ede34 100644 --- a/atomic/unix/mutex.c +++ b/atomic/unix/mutex.c @@ -189,4 +189,17 @@ APR_DECLARE(void*) apr_atomic_casptr(volatile void **mem, void *with, const void return prev; } +APR_DECLARE(void*) apr_atomic_xchgptr(volatile void **mem, void *with) +{ + void *prev; + DECLARE_MUTEX_LOCKED(mutex, mem); + + prev = *mem; + *mem = with; + + MUTEX_UNLOCK(mutex); + + return prev; +} + #endif /* USE_ATOMICS_GENERIC */ |