vibe.d beta banner
get vibe.d
0.10.0

Asynchronous I/O that doesn’t get in your way, written in D

Class RecursiveTaskMutex

Recursive mutex implementation for tasks.

class RecursiveTaskMutex
  : core.sync.mutex.Mutex
  , Lockable ;

This mutex type can be used in exchange for a core.sync.mutex.Mutex, but does not block the event loop when contention happens.

Constructors

NameDescription
this (o)
this ()
this (o)
this ()

Methods

NameDescription
lock ()
lock ()
tryLock ()
tryLock ()
unlock ()
unlock ()
tryLock ()
unlock ()

Notice

Because this class is annotated nothrow, it cannot be interrupted using 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.

See Also

TaskMutex, core.sync.mutex.Mutex

Authors

Leonid Kramer, Sönke Ludwig, Manuel Frischknecht

Copyright

© 2012-2019 Sönke Ludwig

License

Subject to the terms of the MIT license, as written in the included LICENSE.txt file.