API reference@evolu/commonTask › MutexRef

Defined in: packages/common/src/Task.ts:2828

Ref protected by a Mutex.

MutexRef serializes all operations through an internal Mutex. Reads, writes, and updates observe one consistent value transition at a time. If the update fails or is aborted, the previous value is preserved.

Typical use cases are small coordinators such as caches, session values, in-memory registries, and counters whose transitions need to run Tasks atomically.

Extends

Methods

[dispose]()

dispose: void;

Defined in: node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts:36

Inherited from

Disposable.[dispose]

Properties

get

readonly get: Task<T>;

Defined in: packages/common/src/Task.ts:2830

Returns the current value.


getAndSet

readonly getAndSet: (value: T) => Task<T>;

Defined in: packages/common/src/Task.ts:2836

Sets the current value and returns the previous value.

getAndUpdate

readonly getAndUpdate: <E, D>(updater: (current: T) => Task<T, E, D>) => Task<T, E, D>;

Defined in: packages/common/src/Task.ts:2847

Updates the current value and returns the previous value.

modify

readonly modify: <R, E, D>(modifier: (current: T) => Task<readonly [R, T], E, D>) => Task<R, E, D>;

Defined in: packages/common/src/Task.ts:2857

Modifies the current value and returns a computed result.

set

readonly set: (value: T) => Task<void>;

Defined in: packages/common/src/Task.ts:2833

Sets the current value.

setAndGet

readonly setAndGet: (value: T) => Task<T>;

Defined in: packages/common/src/Task.ts:2839

Sets the current value and returns it.

update

readonly update: <E, D>(updater: (current: T) => Task<T, E, D>) => Task<void, E, D>;

Defined in: packages/common/src/Task.ts:2842

Updates the current value.

updateAndGet

readonly updateAndGet: <E, D>(updater: (current: T) => Task<T, E, D>) => Task<T, E, D>;

Defined in: packages/common/src/Task.ts:2852

Updates the current value and returns it.