# destack:sync

`import destack:sync`

## Classes

- [Barrier](/docs/language/standard-library/modules/sync/class/barrier/) — Reusable synchronization barrier.
- [Condvar](/docs/language/standard-library/modules/sync/class/condvar/) — Condition variable paired with a mutex.
- [Mutex](/docs/language/standard-library/modules/sync/class/mutex/) — Mutual exclusion lock.
- [Once](/docs/language/standard-library/modules/sync/class/once/) — One-time execution state.
- [OnceCell](/docs/language/standard-library/modules/sync/class/once-cell/) — One-time initialized cell.
- [RwLock](/docs/language/standard-library/modules/sync/class/rw-lock/) — Reader-writer lock.
- [Semaphore](/docs/language/standard-library/modules/sync/class/semaphore/) — Counting semaphore.

## Structs

- [BarrierWaitResult](/docs/language/standard-library/modules/sync/struct/barrier-wait-result/) — Result returned by a barrier wait.
- [MutexGuard](/docs/language/standard-library/modules/sync/struct/mutex-guard/) — Active mutex lock guard.
- [RwLockReadGuard](/docs/language/standard-library/modules/sync/struct/rw-lock-read-guard/) — Active readonly lock guard.
- [RwLockWriteGuard](/docs/language/standard-library/modules/sync/struct/rw-lock-write-guard/) — Active exclusive lock guard.
- [SemaphorePermit](/docs/language/standard-library/modules/sync/struct/semaphore-permit/) — Active semaphore permit.

## Enums

- [AtomicScope](/docs/language/standard-library/modules/sync/enum/atomic-scope/) — Execution scope for atomic operations.
- [MemoryOrdering](/docs/language/standard-library/modules/sync/enum/memory-ordering/) — Memory ordering for atomic operations.
- [MemoryRegionSet](/docs/language/standard-library/modules/sync/enum/memory-region-set/) — Effect regions participating in an atomic operation.
- [MemoryScope](/docs/language/standard-library/modules/sync/enum/memory-scope/) — Memory scope for atomic operations.

## Newtypes

- [Atomic](/docs/language/standard-library/modules/sync/newtype/atomic/) — Atomic storage for one value.
- [SeekFrom](/docs/language/standard-library/modules/sync/newtype/seek-from/) — Seek origin.

## Newtype interfaces

- [AtomicSafe](/docs/language/standard-library/modules/sync/newtype-interface/atomic-safe/) — Values supported by atomic storage.

## Interfaces

- [Reader](/docs/language/standard-library/modules/sync/interface/reader/) — Byte reader.
- [Seeker](/docs/language/standard-library/modules/sync/interface/seeker/) — Seekable byte stream.
- [Writer](/docs/language/standard-library/modules/sync/interface/writer/) — Byte writer.

## Type aliases

- [AtomicWaitResult](/docs/language/standard-library/modules/sync/type-alias/atomic-wait-result/) — Result of waiting on an atomic value.

## Functions

- [atomicCas](/docs/language/standard-library/modules/sync/function/atomic-cas/) — Atomic compare-and-swap.
- [atomicCasWeak](/docs/language/standard-library/modules/sync/function/atomic-cas-weak/) — Atomic compare-and-swap (weak).
- [atomicExchange](/docs/language/standard-library/modules/sync/function/atomic-exchange/) — Atomic exchange.
- [atomicFence](/docs/language/standard-library/modules/sync/function/atomic-fence/) — Memory fence.
- [atomicFetchAdd](/docs/language/standard-library/modules/sync/function/atomic-fetch-add/) — Atomic fetch-and-add.
- [atomicFetchAnd](/docs/language/standard-library/modules/sync/function/atomic-fetch-and/) — Atomic fetch-and-bitwise-and.
- [atomicFetchFadd](/docs/language/standard-library/modules/sync/function/atomic-fetch-fadd/) — Atomic fetch-and-add (float).
- [atomicFetchFmax](/docs/language/standard-library/modules/sync/function/atomic-fetch-fmax/) — Atomic fetch-and-max (float).
- [atomicFetchFmin](/docs/language/standard-library/modules/sync/function/atomic-fetch-fmin/) — Atomic fetch-and-min (float).
- [atomicFetchMax](/docs/language/standard-library/modules/sync/function/atomic-fetch-max/) — Atomic fetch-and-max.
- [atomicFetchMin](/docs/language/standard-library/modules/sync/function/atomic-fetch-min/) — Atomic fetch-and-min.
- [atomicFetchOr](/docs/language/standard-library/modules/sync/function/atomic-fetch-or/) — Atomic fetch-and-bitwise-or.
- [atomicFetchSub](/docs/language/standard-library/modules/sync/function/atomic-fetch-sub/) — Atomic fetch-and-subtract.
- [atomicFetchUmax](/docs/language/standard-library/modules/sync/function/atomic-fetch-umax/) — Atomic fetch-and-max (unsigned).
- [atomicFetchUmin](/docs/language/standard-library/modules/sync/function/atomic-fetch-umin/) — Atomic fetch-and-min (unsigned).
- [atomicFetchXor](/docs/language/standard-library/modules/sync/function/atomic-fetch-xor/) — Atomic fetch-and-bitwise-xor.
- [atomicLoad](/docs/language/standard-library/modules/sync/function/atomic-load/) — Atomic load.
- [atomicStore](/docs/language/standard-library/modules/sync/function/atomic-store/) — Atomic store.
- [atomicWait](/docs/language/standard-library/modules/sync/function/atomic-wait/) — Wait on an atomic integer location.
- [atomicWake](/docs/language/standard-library/modules/sync/function/atomic-wake/) — Wake waiters blocked on an atomic integer location.
- [readAll](/docs/language/standard-library/modules/sync/function/read-all/) — Read until end of input.
