MemoryLock

Lock used to synchronize the execution of a process using shared memory.

Extends: Lock

Description

The MemoryLock class is used to synchronize the execution of a process using shared memory.

Important points

  • This implementation is not suitable for synchronization of distributed processes.

Configuration parameters

options:

  • retry_timeout: timeout in milliseconds to retry lock acquisition. (Default: 100)

Instance methods

releaseLock

Releases a prevously acquired lock by its key.

@override

Future releaseLock(IContext? context, String key)

  • context: IContext - (optional) a context to trace execution through a call chain.
  • key: String - unique lock key to release.

tryAcquireLock

Makes a single attempt to acquire a lock by its key. It returns a positive or negative result immediately.

@override

Future<bool> tryAcquireLock(IContext? context, String key, int ttl)

  • context: IContext - (optional) a context to trace execution through a call chain.
  • key: String - unique lock key to acquire.
  • ttl: int - lock timeout (time to live) in milliseconds.
  • returns: Future<bool> - lock result

Examples

var lock = MemoryLock();
        try {
        lock.acquire("123", "key1")
            // Processing...
        } finally {
            lock.releaseLock("123", "key1",
                // Continue...
        }
    }
});

See also