API reference@evolu/commonTask › Gate

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

A reusable gate for blocking and releasing Tasks.

  • Closed: Tasks wait.
  • Open: Tasks proceed.

Use it to pause execution based on a condition. Unlike a Deferred, which resolves once, a Gate can be opened and closed repeatedly. Opening releases all current waiters and allows future waiters to pass immediately. Closing only affects future waiters. Releasing allows current waiters to pass while keeping future waiters blocked.

createGate creates a closed Gate by default. Pass isOpen: true when work should proceed immediately.

See

createGate

Properties

close

readonly close: () => boolean;

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

Closes the gate. Returns false when already closed.

isOpen

readonly isOpen: () => boolean;

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

Returns whether the gate is open.

open

readonly open: () => boolean;

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

Opens the gate, releasing all waiters. Returns false when already open.

release

readonly release: () => boolean;

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

Releases the current closed wait cycle. Returns false when already open.

wait

readonly wait: Task<void>;

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

Waits while the gate is closed.