| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package sync
- import "base:intrinsics"
- cpu_relax :: intrinsics.cpu_relax
- /*
- Atomic_Memory_Order :: enum {
- Relaxed = 0, // Unordered
- Consume = 1, // Monotonic
- Acquire = 2,
- Release = 3,
- Acq_Rel = 4,
- Seq_Cst = 5,
- }
- */
- Atomic_Memory_Order :: intrinsics.Atomic_Memory_Order
- atomic_thread_fence :: intrinsics.atomic_thread_fence
- atomic_signal_fence :: intrinsics.atomic_signal_fence
- atomic_store :: intrinsics.atomic_store
- atomic_store_explicit :: intrinsics.atomic_store_explicit
- atomic_load :: intrinsics.atomic_load
- atomic_load_explicit :: intrinsics.atomic_load_explicit
- atomic_add :: intrinsics.atomic_add
- atomic_add_explicit :: intrinsics.atomic_add_explicit
- atomic_sub :: intrinsics.atomic_sub
- atomic_sub_explicit :: intrinsics.atomic_sub_explicit
- atomic_and :: intrinsics.atomic_and
- atomic_and_explicit :: intrinsics.atomic_and_explicit
- atomic_nand :: intrinsics.atomic_nand
- atomic_nand_explicit :: intrinsics.atomic_nand_explicit
- atomic_or :: intrinsics.atomic_or
- atomic_or_explicit :: intrinsics.atomic_or_explicit
- atomic_xor :: intrinsics.atomic_xor
- atomic_xor_explicit :: intrinsics.atomic_xor_explicit
- atomic_exchange :: intrinsics.atomic_exchange
- atomic_exchange_explicit :: intrinsics.atomic_exchange_explicit
- // Returns value and optional ok boolean
- atomic_compare_exchange_strong :: intrinsics.atomic_compare_exchange_strong
- atomic_compare_exchange_strong_explicit :: intrinsics.atomic_compare_exchange_strong_explicit
- atomic_compare_exchange_weak :: intrinsics.atomic_compare_exchange_weak
- atomic_compare_exchange_weak_explicit :: intrinsics.atomic_compare_exchange_weak_explicit
|