API reference › @evolu/common › Resource › Lease
Defined in: packages/common/src/Resource.ts:87
An owned lease on a shared Resource.
A lease keeps the underlying resource alive. Release it with
Lease.release or using; releasing the last lease starts the resource
disposal path. Release is idempotent, so double release is a safe no-op.
Release is synchronous accounting and never waits for resource disposal. Disposal completion belongs to the owning SharedResource: it may be delayed by idleDisposeAfter and is awaited by the owner's async disposal.
Release does not revoke resource; a released lease keeps a plain reference, and using it after the resource is disposed is a programmer error that nothing catches statically. Create resources with the disposable helper so use-after-dispose throws eagerly instead of operating on disposed state.
Extends
Methods
[dispose]()
dispose: void;
Defined in: node_modules/@typescript/old/lib/lib.esnext.disposable.d.ts:34
Inherited from
Disposable.[dispose]
Properties
created
readonly created: boolean;
Defined in: packages/common/src/Resource.ts:92
Whether this acquisition created the leased resource generation.
release
readonly release: () => boolean;
Defined in: packages/common/src/Resource.ts:102
Releases this lease.
Returns whether this call released a still-held lease. Returns false if
the lease was already released, drained by disposal of its owning
SharedResource, or drained by disposal of the Run tree that owns
it.
resource
readonly resource: DistributiveOmit<T>;
Defined in: packages/common/src/Resource.ts:89
The leased resource.