Struct ruspiro_lock::async::AsyncRWLock [−][src]
pub struct AsyncRWLock<T> { /* fields omitted */ }
Expand description
An async mutex lock that can be used in async functions to prevent blocking current execution while waiting for the
lock to become available. So for this to work the lock
method does not return a WriteGuard immediately but a
Future that will resolve into a AsyncWriteLockGuard when await
ed.
In the same way the read
method will return a Future
resolving to an AsyncReadLockGuard when await
ed.
Implementations
Create the AsyncRWLock
Locking the data for write access secured by the AsyncRWLock will yield a Future
that must be awaited to
actually acquire the lock.
Locking the data for read access secured by the AsyncRWLock will yield a Future
that must be awaited to
actually acquire the lock.
Provide the inner data wrapped by this AsyncRWLock. This will only provide the contained data if there is only
one active reference to it. If the data is still shared more than once, eg. because there are active Future
s
awaiting a lock this will return the actual AsyncRWLock
in the Err
variant.