public void Request(long n) { if (SubscriptionHelper.Validate(n) && !outputFused) { SubscriptionHelper.PostCompleteMultiRequest(actual, ref requested, queue, n, ref cancelled); } }
public void Request(long n) { if (!SubscriptionHelper.PostCompleteMultiRequest(actual, ref requested, queue, n, ref cancelled)) { long u = SubscriptionHelper.MultiplyCap(n, size - skip); if (Volatile.Read(ref firstRequest) == 0 && Interlocked.CompareExchange(ref firstRequest, 1, 0) == 0) { u += skip; if (u < 0L) { u = long.MaxValue; } } upstream.Request(u); } }