public function dispose() { if ($this->isDisposed) { return; } $this->isDisposed = true; $this->scheduler->schedule(function () { $this->disposable->dispose(); }); }
/** * @inheritDoc */ public function __invoke(ObservableInterface $observable, ObserverInterface $observer, SchedulerInterface $scheduler = null) { $disposable = new SerialDisposable(); $singleDisposable = new SingleAssignmentDisposable(); $disposable->setDisposable($singleDisposable); $singleDisposable->setDisposable($this->scheduler->schedule(function () use($disposable, $observer, $observable, $scheduler) { $subscription = $observable->subscribe($observer, $scheduler); $disposable->setDisposable(new ScheduledDisposable($this->scheduler, $subscription)); })); return $disposable; }