summaryrefslogtreecommitdiff
path: root/libc/src/__support/CPP/atomic.h
diff options
context:
space:
mode:
Diffstat (limited to 'libc/src/__support/CPP/atomic.h')
-rw-r--r--libc/src/__support/CPP/atomic.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/libc/src/__support/CPP/atomic.h b/libc/src/__support/CPP/atomic.h
index 495d492a0b7c..6922a367289a 100644
--- a/libc/src/__support/CPP/atomic.h
+++ b/libc/src/__support/CPP/atomic.h
@@ -90,6 +90,10 @@ public:
return __atomic_fetch_or(&val, mask, int(mem_ord));
}
+ T fetch_and(T mask, MemoryOrder mem_ord = MemoryOrder::SEQ_CST) {
+ return __atomic_fetch_and(&val, mask, int(mem_ord));
+ }
+
T fetch_sub(T decrement, MemoryOrder mem_ord = MemoryOrder::SEQ_CST) {
return __atomic_fetch_sub(&val, decrement, int(mem_ord));
}