Module std::syncExperimental [-]  [+] [src]

Useful synchronization primitives

This module contains useful safe and unsafe synchronization primitives. Most of the primitives in this module do not provide any sort of locking and/or blocking at all, but rather provide the necessary tools to build other types of concurrent primitives.

Modules

atomic

Atomic types

Structs

Arc

An atomically reference counted wrapper for shared state.

Barrier

A barrier enables multiple tasks to synchronize the beginning of some computation.

Condvar

A Condition Variable

Future

A type encapsulating the result of a computation which may not be complete

Mutex

A mutual exclusion primitive useful for protecting shared data

MutexGuard

An RAII implementation of a "scoped lock" of a mutex. When this structure is dropped (falls out of scope), the lock will be unlocked.

Once

A synchronization primitive which can be used to run a one-time global initialization. Useful for one-time initialization for FFI or related functionality. This type can only be constructed with the ONCE_INIT value.

PoisonError

A type of error which can be returned whenever a lock is acquired.

RWLock

A reader-writer lock

RWLockReadGuard

RAII structure used to release the shared read access of a lock when dropped.

RWLockWriteGuard

RAII structure used to release the exclusive write access of a lock when dropped.

Semaphore

A counting, blocking, semaphore.

SemaphoreGuard

An RAII guard which will release a resource acquired from a semaphore when dropped.

StaticCondvar

Statically allocated condition variables.

StaticMutex

The static mutex type is provided to allow for static allocation of mutexes.

StaticRWLock

Structure representing a statically allocated RWLock.

TaskPool

A thread pool used to execute functions in parallel.

Weak

A weak pointer to an Arc.

Enums

TryLockError

An enumeration of possible errors which can occur while calling the try_lock method.

Constants

CONDVAR_INIT

Constant initializer for a statically allocated condition variable.

MUTEX_INIT

Static initialization of a mutex. This constant can be used to initialize other mutex constants.

ONCE_INIT

Initialization value for static Once values.

RWLOCK_INIT

Constant initialization for a statically-initialized rwlock.

Type Definitions

LockResult

A type alias for the result of a lock method which can be poisoned.

TryLockResult

A type alias for the result of a nonblocking locking method.