package sync2 import "core:intrinsics" cpu_relax :: intrinsics.cpu_relax; atomic_fence :: intrinsics.atomic_fence; atomic_fence_acquire :: intrinsics.atomic_fence_acq; atomic_fence_release :: intrinsics.atomic_fence_rel; atomic_fence_acqrel :: intrinsics.atomic_fence_acqrel; atomic_store :: intrinsics.atomic_store; atomic_store_release :: intrinsics.atomic_store_rel; atomic_store_relaxed :: intrinsics.atomic_store_relaxed; atomic_store_unordered :: intrinsics.atomic_store_unordered; atomic_load :: intrinsics.atomic_load; atomic_load_acquire :: intrinsics.atomic_load_acq; atomic_load_relaxed :: intrinsics.atomic_load_relaxed; atomic_load_unordered :: intrinsics.atomic_load_unordered; atomic_add :: intrinsics.atomic_add; atomic_add_acquire :: intrinsics.atomic_add_acq; atomic_add_release :: intrinsics.atomic_add_rel; atomic_add_acqrel :: intrinsics.atomic_add_acqrel; atomic_add_relaxed :: intrinsics.atomic_add_relaxed; atomic_sub :: intrinsics.atomic_sub; atomic_sub_acquire :: intrinsics.atomic_sub_acq; atomic_sub_release :: intrinsics.atomic_sub_rel; atomic_sub_acqrel :: intrinsics.atomic_sub_acqrel; atomic_sub_relaxed :: intrinsics.atomic_sub_relaxed; atomic_and :: intrinsics.atomic_and; atomic_and_acquire :: intrinsics.atomic_and_acq; atomic_and_release :: intrinsics.atomic_and_rel; atomic_and_acqrel :: intrinsics.atomic_and_acqrel; atomic_and_relaxed :: intrinsics.atomic_and_relaxed; atomic_nand :: intrinsics.atomic_nand; atomic_nand_acquire :: intrinsics.atomic_nand_acq; atomic_nand_release :: intrinsics.atomic_nand_rel; atomic_nand_acqrel :: intrinsics.atomic_nand_acqrel; atomic_nand_relaxed :: intrinsics.atomic_nand_relaxed; atomic_or :: intrinsics.atomic_or; atomic_or_acquire :: intrinsics.atomic_or_acq; atomic_or_release :: intrinsics.atomic_or_rel; atomic_or_acqrel :: intrinsics.atomic_or_acqrel; atomic_or_relaxed :: intrinsics.atomic_or_relaxed; atomic_xor :: intrinsics.atomic_xor; atomic_xor_acquire :: intrinsics.atomic_xor_acq; atomic_xor_release :: intrinsics.atomic_xor_rel; atomic_xor_acqrel :: intrinsics.atomic_xor_acqrel; atomic_xor_relaxed :: intrinsics.atomic_xor_relaxed; atomic_exchange :: intrinsics.atomic_xchg; atomic_exchange_acquire :: intrinsics.atomic_xchg_acq; atomic_exchange_release :: intrinsics.atomic_xchg_rel; atomic_exchange_acqrel :: intrinsics.atomic_xchg_acqrel; atomic_exchange_relaxed :: intrinsics.atomic_xchg_relaxed; // Returns value and optional ok boolean atomic_compare_exchange_strong :: intrinsics.atomic_cxchg; atomic_compare_exchange_strong_acquire :: intrinsics.atomic_cxchg_acq; atomic_compare_exchange_strong_release :: intrinsics.atomic_cxchg_rel; atomic_compare_exchange_strong_acqrel :: intrinsics.atomic_cxchg_acqrel; atomic_compare_exchange_strong_relaxed :: intrinsics.atomic_cxchg_relaxed; atomic_compare_exchange_strong_failrelaxed :: intrinsics.atomic_cxchg_failrelaxed; atomic_compare_exchange_strong_failacquire :: intrinsics.atomic_cxchg_failacq; atomic_compare_exchange_strong_acquire_failrelaxed :: intrinsics.atomic_cxchg_acq_failrelaxed; atomic_compare_exchange_strong_acqrel_failrelaxed :: intrinsics.atomic_cxchg_acqrel_failrelaxed; // Returns value and optional ok boolean atomic_compare_exchange_weak :: intrinsics.atomic_cxchgweak; atomic_compare_exchange_weak_acquire :: intrinsics.atomic_cxchgweak_acq; atomic_compare_exchange_weak_release :: intrinsics.atomic_cxchgweak_rel; atomic_compare_exchange_weak_acqrel :: intrinsics.atomic_cxchgweak_acqrel; atomic_compare_exchange_weak_relaxed :: intrinsics.atomic_cxchgweak_relaxed; atomic_compare_exchange_weak_failrelaxed :: intrinsics.atomic_cxchgweak_failrelaxed; atomic_compare_exchange_weak_failacquire :: intrinsics.atomic_cxchgweak_failacq; atomic_compare_exchange_weak_acquire_failrelaxed :: intrinsics.atomic_cxchgweak_acq_failrelaxed; atomic_compare_exchange_weak_acqrel_failrelaxed :: intrinsics.atomic_cxchgweak_acqrel_failrelaxed;