mirror of
https://github.com/odin-lang/Odin.git
synced 2025-12-29 17:34:34 +00:00
45 lines
2.0 KiB
Odin
45 lines
2.0 KiB
Odin
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 |