API reference › @evolu/common › Task › 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
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.