/**
* @return \Rx\Disposable\BinaryDisposable
*/
public function connect()
{
if ($this->hasSubscription) {
return $this->subscription;
}
$this->hasSubscription = true;
$isDisposed = false;
$connectableDisposable = new CallbackDisposable(function () use(&$isDisposed) {
if ($isDisposed) {
return;
}
$isDisposed = true;
$this->hasSubscription = false;
});
$this->subscription = new BinaryDisposable($this->sourceObservable->subscribe($this->subject, $this->scheduler), $connectableDisposable);
return $this->subscription;
}