* * @internal */ final class Canary { public function __construct( private \Closure $canceller, ) { } public function cancel(): void { if (isset($this->canceller)) { $canceller = $this->canceller; unset($this->canceller); $canceller(); } } public function __destruct() { $this->cancel(); } }