A ReadWriteLocker that gives no priority to read or write operations: both use the same lock.

Hierarchy

  • EqualReadWriteLocker

Implements

Constructors

Properties

Methods

Constructors

Properties

Methods

  • Acquires a new lock for the requested identifier. Will resolve when the input function resolves.

    Type Parameters

    • T

    Parameters

    • identifier: ResourceIdentifier

      Identifier of resource that needs to be locked.

    • whileLocked: (() => T | Promise<T>)

      Function to resolve while the resource is locked.

        • (): T | Promise<T>
        • Returns T | Promise<T>

    Returns Promise<T>

  • 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.

    Returns

    A promise resolving when the lock is released.

    Type Parameters

    • T

    Parameters

    • identifier: ResourceIdentifier

      Identifier of the resource that needs to be locked.

    • whileLocked: (() => T | Promise<T>)

      A function to execute while the resource is locked.

        • (): T | Promise<T>
        • Returns T | Promise<T>

    Returns Promise<T>

  • 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.

    Returns

    A promise resolving when the lock is released.

    Type Parameters

    • T

    Parameters

    • identifier: ResourceIdentifier

      Identifier of the resource that needs to be locked.

    • whileLocked: (() => T | Promise<T>)

      A function to execute while the resource is locked.

        • (): T | Promise<T>
        • Returns T | Promise<T>

    Returns Promise<T>