Acquires a new lock for the requested identifier. Will resolve when the input function resolves.
Identifier of resource that needs to be locked.
Function to resolve while the resource is locked.
Run the given function while the resource is locked. The lock will be released when the (async) input function resolves. This function should be used for operations that only require reading the resource.
Run the given function while the resource is locked. The lock will be released when the (async) input function resolves. This function should be used for operations that could modify the resource.
A ReadWriteLocker that gives no priority to read or write operations: both use the same lock.