ReadonlyroomReadonlysignalAborted synchronously when disposal starts.
Register a cleanup and return an idempotent early-release function. After disposal starts, registration runs the cleanup immediately.
Abort the signal and start cleanup once, in reverse registration order. Asynchronous cleanup does not delay the start of remaining cleanup.
Start disposal and wait until all pending cleanup has settled. Failures are collected instead of rejecting this promise. Cleanup added while waiting is included; cleanup added after completion is not. A cleanup must not await disposal of its own scope.
Return a snapshot of failures observed so far, in observation order.
Owns room resources and rejects operation results after invalidation.