Options
All
  • Public
  • Public/Protected
  • All
Menu

A ReadWriteLocker where the locks expire after a given time.

Hierarchy

Implemented by

Index

Properties

withReadLock

withReadLock: <T>(identifier: ResourceIdentifier, whileLocked: (maintainLock: () => void) => T | Promise<T>) => 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.

Type declaration

    • <T>(identifier: ResourceIdentifier, whileLocked: (maintainLock: () => void) => T | Promise<T>): Promise<T>
    • As ReadWriteLocker.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

withWriteLock: <T>(identifier: ResourceIdentifier, whileLocked: (maintainLock: () => void) => T | Promise<T>) => 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.

Type declaration

    • <T>(identifier: ResourceIdentifier, whileLocked: (maintainLock: () => void) => T | Promise<T>): Promise<T>
    • As ReadWriteLocker.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>