private async Task UnsubscribeAsync(IScheduledAsyncObserver <T> observer) { using (await _lock.LockAsync().ConfigureAwait(false)) { _observers.Remove(observer); } }
protected override async Task <int> ReplayAsync(IScheduledAsyncObserver <T> observer) { var count = _values.Count; foreach (var value in _values) { await observer.OnNextAsync(value.Value).ConfigureAwait(false); } return(count); }
protected override async Task <int> ReplayAsync(IScheduledAsyncObserver <T> observer) { if (_hasValue) { await observer.OnNextAsync(_value).ConfigureAwait(false); return(1); } return(0); }
public Subscription(ReplayBase parent, IScheduledAsyncObserver <T> scheduled) { _parent = parent; _scheduled = scheduled; }
protected abstract Task <int> ReplayAsync(IScheduledAsyncObserver <T> observer);