Alternative to RecursiveTaskMutex that supports interruption.
Alternative to TaskCondition that supports interruption.
Alternative to TaskMutex that supports interruption.
Alternative to TaskReadWriteMutex that supports interruption.
Thread-local semaphore implementation for tasks.
Recursive mutex implementation for tasks.
Event loop based condition variable or "event" implementation.
Mutex implementation for fibers.
A ReadWriteMutex implementation for fibers.
Creates a new signal that can be shared between fibers.
Creates a new signal that can be shared between fibers.
private
Performs RAII based locking/unlocking of a mutex.
A manually triggered single threaded cross-task event.
A manually triggered multi threaded cross-task event.
RAII lock for the Mutex class.
Event loop compatible task synchronization facilities.
This module provides replacement primitives for the modules in core.sync that do not block vibe.d's event loop in their wait states. These should always be preferred over the ones in Druntime under usual circumstances.
Using a standard Mutex is possible as long as it is ensured that no event loop based functionality (I/O, task interaction or anything that implicitly calls vibe.core.core.yield) is executed within a section of code that is protected by the mutex. Failure to do so may result in dead-locks and high-level race-conditions!