void InnerComplete(ZipSubscriber inner) { if (!inner.done) { Volatile.Write(ref inner.done, true); Drain(); } }
void InnerError(ZipSubscriber inner, Exception cause) { if (!inner.done) { ExceptionHelper.AddException(ref error, cause); Volatile.Write(ref inner.done, true); Drain(); } }
internal ZipSubscription(IFlowableSubscriber <R> actual, Func <T[], R> zipper, int n, int prefetch) { this.actual = actual; this.zipper = zipper; this.prefetch = prefetch; var s = new ZipSubscriber[n]; for (int i = 0; i < n; i++) { s[i] = new ZipSubscriber(this, prefetch); } this.subscribers = s; this.current = new T[n]; this.hasValue = new bool[n]; }