def test_booleandisposable(): d = BooleanDisposable() assert not d.is_disposed d.dispose() assert d.is_disposed d.dispose() assert d.is_disposed
def subscribe(o, observer=None): d = BooleanDisposable() o.on_next(1) o.on_next(2) def action1(scheduler, state): if not d.is_disposed: o.on_next(3) scheduler.schedule_relative(600, action1) def action2(scheduler, state): if not d.is_disposed: o.on_next(4) scheduler.schedule_relative(700, action2) def action3(scheduler, state): if not d.is_disposed: o.on_next(5) scheduler.schedule_relative(900, action3) def action4(scheduler, state): if not d.is_disposed: o.on_next(6) scheduler.schedule_relative(1100, action4) return d
def test_refcountdisposable_singlereference(): d = BooleanDisposable() r = RefCountDisposable(d) assert not d.is_disposed r.dispose() assert d.is_disposed r.dispose() assert d.is_disposed
def test_refcountdisposable_primarydisposesfirst(): d = BooleanDisposable() r = RefCountDisposable(d) assert not d.is_disposed d1 = r.disposable d2 = r.disposable assert not d.is_disposed d1.dispose() assert not d.is_disposed r.dispose() assert not d.is_disposed d2.dispose() assert d.is_disposed
def test_refcountdisposable_refcounting(): d = BooleanDisposable() r = RefCountDisposable(d) assert not d.is_disposed d1 = r.disposable d2 = r.disposable assert not d.is_disposed d1.dispose() assert not d.is_disposed d2.dispose() assert not d.is_disposed r.dispose() assert d.is_disposed d3 = r.disposable d3.dispose()
def _(v): if isinstance(v, Continue): with self.source.lock: if current_index + 1 < self.source.buffer.last_idx: has_elem = True else: # no new item has been added since call to 'notify_on_next' has_elem = False self.source.inactive_subsriptions.append(self) if has_elem: disposable = BooleanDisposable() self.fast_loop(current_index, 0, disposable) elif isinstance(v, Stop): self.signal_stop() else: raise Exception( 'no recognized acknowledgment {}'.format(v)) inner_ack.on_next(v) inner_ack.on_completed()