Skip to content

v1.3.0

Choose a tag to compare

@github-actions github-actions released this 10 Oct 10:33
· 6 commits to master since this release
af4be1b
  • Add KeyedBulkhead: the same wait, lease and observer semantics as SharedBulkhead, with the name and limit passed per call (call(name, max, cb), acquire(), tryAcquire(), availableSlots()) — for one limit per proxy, tenant or browser context without dropping to the raw BulkheadStore and a hand-written try/finally (#43).
  • Add Slot, a held slot as a value with an idempotent release(), returned by the new SharedBulkhead::acquire()/tryAcquire() and their KeyedBulkhead twins: take a slot in one place, release it where the work ends (#43). acquire() waits up to maxWait and throws BulkheadFullException; tryAcquire() never waits and returns null. A throwing onAccepted releases the slot before rethrowing, as in call().
  • BulkheadFullException now carries waited (time spent waiting) and lease, and retryAfter(): ?Duration returns the lease as an upper bound on when a slot frees — a Retry-After ceiling (#44). Both are new optional constructor parameters; an exception built by hand still works and reports null.
  • Sleeper\FakeSleeper accepts an optional onSleep closure called after each recorded sleep, so a test can advance a fake clock without its own sleeper (#45, additive part).
  • CI: tolerate roave's all-SKIPPED BC report, split the mutation path filter, verify the tagged commit before publishing a release.