This mutex type can be used in exchange for a core.sync.mutex.Mutex, but
does not block the event loop when contention happens.
Notice:
Because this class is annotated nothrow, it cannot be interrupted
using vibe.core.task.Task.interrupt(). The corresponding
InterruptException will be deferred until the next blocking
operation yields the event loop.
Recursive mutex implementation for tasks.
This mutex type can be used in exchange for a core.sync.mutex.Mutex, but does not block the event loop when contention happens.
Notice: Because this class is annotated nothrow, it cannot be interrupted using vibe.core.task.Task.interrupt(). The corresponding InterruptException will be deferred until the next blocking operation yields the event loop.
Use InterruptibleRecursiveTaskMutex as an alternative that can be interrupted.