Waiter registry for FLOW.CLAIM_DUE ... BLOCK.
This table is intentionally separate from list and stream waiters. Flow waiter
notifications are only scheduling hints: a woken process must rerun the real
claim_due command, which remains atomic through the replicated write path.
Summary
Types
Functions
@spec any_waiters?() :: boolean()
@spec cleanup(pid()) :: :ok
@spec count(waiter_key()) :: non_neg_integer()
@spec has_live_waiter?(waiter_key()) :: boolean()
@spec init() :: :ok
@spec message() :: atom()
@spec notify([waiter_key()], pos_integer()) :: non_neg_integer()
@spec notify_ready(binary(), term(), term(), term(), pos_integer()) :: non_neg_integer()
@spec notify_ready_many( [{binary(), term(), term(), term(), pos_integer()}], pos_integer() ) :: non_neg_integer()
@spec notify_scheduled_ready(tuple()) :: non_neg_integer()
@spec prune_stale_entries() :: :ok
@spec ready_keys(binary(), term(), term(), term()) :: [waiter_key()]
@spec register([waiter_key()], pid(), integer(), keyword()) :: :ok | {:error, binary()}
@spec scheduled_count() :: non_neg_integer()
@spec total_count() :: non_neg_integer()
@spec unregister([waiter_key()], pid()) :: :ok
@spec wait_keys(binary(), term(), term(), term()) :: [waiter_key()]