Interface ExpiringReadWriteLocker

A ReadWriteLocker where the locks expire after a given time.

Hierarchy

Implemented by

Properties

withReadLock: (<T>(identifier: ResourceIdentifier, whileLocked: ((maintainLock: (() => void)) => T | Promise<T>)) => Promise<T>)

Type declaration

    • <T>(identifier: ResourceIdentifier, whileLocked: ((maintainLock: (() => void)) => T | Promise<T>)): Promise<T>
    • As withReadLock but the locked function gets called with a maintainLock callback function to reset the lock expiration every time it is called. The resulting promise will reject once the lock expires.

      Type Parameters

      • T

      Parameters

      • identifier: ResourceIdentifier

        Identifier of the resource that needs to be locked.

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

        A function to execute while the resource is locked. Receives a callback as input parameter to maintain the lock.

          • (maintainLock: (() => void)): T | Promise<T>
          • Parameters

            • maintainLock: (() => void)
                • (): void
                • Returns void

            Returns T | Promise<T>

      Returns Promise<T>

withWriteLock: (<T>(identifier: ResourceIdentifier, whileLocked: ((maintainLock: (() => void)) => T | Promise<T>)) => Promise<T>)

Type declaration

    • <T>(identifier: ResourceIdentifier, whileLocked: ((maintainLock: (() => void)) => T | Promise<T>)): Promise<T>
    • As withWriteLock but the locked function gets called with a maintainLock callback function to reset the lock expiration every time it is called. The resulting promise will reject once the lock expires.

      Type Parameters

      • T

      Parameters

      • identifier: ResourceIdentifier

        Identifier of the resource that needs to be locked.

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

        A function to execute while the resource is locked. Receives a callback as input parameter to maintain the lock.

          • (maintainLock: (() => void)): T | Promise<T>
          • Parameters

            • maintainLock: (() => void)
                • (): void
                • Returns void

            Returns T | Promise<T>

      Returns Promise<T>