summaryrefslogtreecommitdiff
path: root/atomic/unix/mutex.c
diff options
context:
space:
mode:
Diffstat (limited to 'atomic/unix/mutex.c')
-rw-r--r--atomic/unix/mutex.c13
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 */