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);
     }
 }