public IAsyncEnumerator <TResult> GetAsyncEnumerator() { var en = new ConcatMapEagerEnumerator(_source.GetAsyncEnumerator(), _mapper, _maxConcurrency, _prefetch); en.MoveNextSource(); return(en); }
public IAsyncEnumerator <TResult> GetAsyncEnumerator(CancellationToken cancellationToken) { var sourceCTS = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken); var en = new ConcatMapEagerEnumerator(_source.GetAsyncEnumerator(sourceCTS.Token), _mapper, _maxConcurrency, _prefetch, sourceCTS); en.MoveNextSource(); return(en); }
public InnerHandler(IAsyncEnumerator <TResult> source, ConcatMapEagerEnumerator parent) { _source = source; _parent = parent; Queue = new ConcurrentQueue <TResult>(); var p = parent._prefetch; _outstanding = p; _limit = p - (p >> 2); }