summaryrefslogtreecommitdiff
path: root/asl/atomic.hpp
diff options
context:
space:
mode:
authorSteven Le Rouzic <steven.lerouzic@gmail.com>2025-02-17 00:21:48 +0100
committerSteven Le Rouzic <steven.lerouzic@gmail.com>2025-02-17 22:29:50 +0100
commita141c401f78467bc15f62882fca5d55a007cacbb (patch)
tree908ac71a8640f78f45d22c6808c5fa6e373000fa /asl/atomic.hpp
parentcb77cbe9ce4cddad6a460aa190ff70f0c13e4703 (diff)
Reorganize everything
Diffstat (limited to 'asl/atomic.hpp')
-rw-r--r--asl/atomic.hpp51
1 files changed, 0 insertions, 51 deletions
diff --git a/asl/atomic.hpp b/asl/atomic.hpp
deleted file mode 100644
index 95c3715..0000000
--- a/asl/atomic.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-#pragma once
-
-#include "asl/meta.hpp"
-
-namespace asl
-{
-
-enum class memory_order : int // NOLINT(*-enum-size)
-{
- relaxed = __ATOMIC_RELAXED,
- acquire = __ATOMIC_ACQUIRE,
- release = __ATOMIC_RELEASE,
- acq_rel = __ATOMIC_ACQ_REL,
- seq_cst = __ATOMIC_SEQ_CST,
-};
-
-template<typename T> struct atomic { T m_value{}; };
-
-inline void atomic_fence(memory_order order)
-{
- __atomic_thread_fence(static_cast<int>(order));
-}
-
-template<is_integer T>
-inline void atomic_store(atomic<T>* a, T value, memory_order order = memory_order::relaxed)
-{
- __atomic_store(&a->m_value, &value, static_cast<int>(order));
-}
-
-template<is_integer T>
-inline T atomic_load(atomic<T>* a, memory_order order = memory_order::relaxed)
-{
- T value;
- __atomic_load(&a->m_value, &value, static_cast<int>(order));
- return value;
-}
-
-template<typename T>
-inline T atomic_fetch_increment(atomic<T>* a, memory_order order = memory_order::relaxed)
-{
- return __atomic_fetch_add(&a->m_value, 1, static_cast<int>(order));
-}
-
-template<typename T>
-inline T atomic_fetch_decrement(atomic<T>* a, memory_order order = memory_order::relaxed)
-{
- return __atomic_fetch_sub(&a->m_value, 1, static_cast<int>(order));
-}
-
-} // namespace asl
-