RawReadWriteMutex class

A RawReadWriteMutex implementation that allows multiple readers or a single writer.

This mutex supports different lock policies to manage the order of lock acquisition:

  • LockPolicy.fair: Grants locks in the order they were requested.
  • LockPolicy.readersFirst: Prefers granting read locks over write locks.
  • LockPolicy.writersFirst: Prefers granting write locks over read locks.

Constructors

RawReadWriteMutex({LockPolicy lockPolicy = LockPolicy.fair})

Properties

hashCode int
The hash code for this object.
no setterinherited
lockPolicy LockPolicy
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

acquireRead({CancellationToken? cancellationToken, Duration? timeout}) Future<void>
Acquires a read lock.
acquireWrite({CancellationToken? cancellationToken, Duration? timeout}) Future<void>
Acquires a write lock.
isLocked() bool
Checks if the mutex is currently locked (either read or write).
isReadLocked() bool
Checks if the mutex is currently read-locked.
isWriteLocked() bool
Checks if the mutex is currently write-locked.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
protectRead<T>(Future<T> action(), {CancellationToken? cancellationToken, Duration? timeout}) Future<T>
Executes action within a read lock.
protectWrite<T>(Future<T> action(), {CancellationToken? cancellationToken, Duration? timeout}) Future<T>
Executes action within a write lock.
releaseRead() → void
Releases a read lock.
releaseWrite() → void
Releases a write lock.
toString() String
A string representation of this object.
inherited
tryAcquireWrite() bool
Attempts to acquire a write lock without waiting.
tryLock<T>(Future<T> action(), {CancellationToken? cancellationToken, Duration? timeout}) Future<T?>

Operators

operator ==(Object other) bool
The equality operator.
inherited