Read-preferring read write lock

Hierarchy

  • RWLockReader

Implements

Constructors

Properties

_readerCount: number = 0
_writerCount: number = 0
acquireWritersLockP: PromiseCancellable<readonly [ResourceRelease, undefined | Lock]>
readerCountBlocked: number = 0
readersLock: Lock = ...
writersLock: Lock = ...
writersRelease: ResourceRelease

Accessors

Methods

  • Check if locked If passed type, it will also check that the active lock is of that type

    Parameters

    • Optional type: "read" | "write"

    Returns boolean

  • Type Parameters

    • T

    Parameters

    • Rest ...params: [((lock) => Promise<T>)] | [undefined | "read" | "write", undefined | Partial<ContextTimedInput>, ((lock) => Promise<T>)] | [undefined | "read" | "write", ((lock) => Promise<T>)] | [undefined | Partial<ContextTimedInput>, ((lock) => Promise<T>)]

    Returns Promise<T>

  • Type Parameters

    • T

    • TReturn

    • TNext

    Parameters

    • Rest ...params: [((lock) => AsyncGenerator<T, TReturn, TNext>)] | [undefined | "read" | "write", undefined | Partial<ContextTimedInput>, ((lock) => AsyncGenerator<T, TReturn, TNext>)] | [undefined | "read" | "write", ((lock) => AsyncGenerator<T, TReturn, TNext>)] | [undefined | Partial<ContextTimedInput>, ((lock) => AsyncGenerator<T, TReturn, TNext>)]

    Returns AsyncGenerator<T, TReturn, TNext>

  • Type Parameters

    • T

    Parameters

    • Rest ...params: [((lock) => Promise<T>)] | [undefined | Partial<ContextTimedInput>, ((lock) => Promise<T>)]

    Returns Promise<T>

  • Type Parameters

    • T

    • TReturn

    • TNext

    Parameters

    • Rest ...params: [((lock) => AsyncGenerator<T, TReturn, TNext>)] | [undefined | Partial<ContextTimedInput>, ((lock) => AsyncGenerator<T, TReturn, TNext>)]

    Returns AsyncGenerator<T, TReturn, TNext>

  • Type Parameters

    • T

    Parameters

    • Rest ...params: [((lock) => Promise<T>)] | [undefined | Partial<ContextTimedInput>, ((lock) => Promise<T>)]

    Returns Promise<T>

  • Type Parameters

    • T

    • TReturn

    • TNext

    Parameters

    • Rest ...params: [((lock) => AsyncGenerator<T, TReturn, TNext>)] | [undefined | Partial<ContextTimedInput>, ((lock) => AsyncGenerator<T, TReturn, TNext>)]

    Returns AsyncGenerator<T, TReturn, TNext>

Generated using TypeDoc