vibe.d beta banner
get vibe.d
0.7.30

Class TaskReadWriteMutex

A ReadWriteMutex implementation for fibers.

This mutex can be used in exchange for a core.sync.mutex.ReadWriteMutex, but does not block the event loop in contention situations. The reader and writer members are used for locking. Locking the reader mutex allows access to multiple readers at once, while the writer mutex only allows a single writer to lock it at any given time. Locks on reader and writer are mutually exclusive (i.e. whenever a writer is active, no readers can be active at the same time, and vice versa).

Inherits from

  • Object (base class)

Constructors

Name Description
this

Fields

Name Type Description
reader TaskReadWriteMutex.Mutex!(0)
writer TaskReadWriteMutex.Mutex!(1)

Properties

Name Type Description
policy [get] vibe.core.sync.ReadWriteMutexState!(false) The policy with which the lock has been created.

Inner classes

Name Description
Mutex A common baseclass for both of the provided mutexes.

Aliases

Name Description
Policy The policy with which the mutex should operate.
Reader
Writer

Notice

Mutexes implemented by this class 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 InterruptibleTaskReadWriteMutex as an alternative that can be interrupted.

cf. core.sync.mutex.ReadWriteMutex

Authors

Leonid Kramer, Sönke Ludwig, Manuel Frischknecht

Copyright

© 2012-2015 RejectedSoftware e.K.

License

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