in packages/sdk/src/Trackable.ts [67:78]
export function setup(controller: Controller, manager: Manager): Closer {
const revocableController = new RevocableController(controller);
const cleanup = manager(revocableController);
return () => {
if (revocableController.isRevoked) return;
try {
cleanup?.();
} finally {
revocableController.revoke();
}
};
}