@tempest/core
Version:
The core of the Tempest Stream Library
21 lines • 662 B
JavaScript
import { MulticastTask } from './MulticastTask';
export class MulticastDisposable {
constructor(source, sink, scheduler) {
this.source = source;
this.sink = sink;
this.scheduler = scheduler;
this.disposed = false;
}
dispose() {
if (this.disposed)
return;
this.disposed = true;
const source = this.source;
const remaining = source._remove(this.sink);
if (remaining === 0) {
const task = MulticastTask.create(() => source._dispose());
source._stopId = this.scheduler.asap(task);
}
}
}
//# sourceMappingURL=MulticastDisposable.js.map