コード例 #1
0
 public void Request(long n)
 {
     if (OnSubscribeHelper.ValidateRequest(n))
     {
         BackpressureHelper.PostCompleteRequest(ref requested, n, queue, actual, ref cancelled);
     }
 }
コード例 #2
0
 public void Request(long n)
 {
     if (SubscriptionHelper.Validate(n))
     {
         if (!BackpressureHelper.PostCompleteRequest(ref requested, n, actual, queue, ref cancelled))
         {
             s.Request(n);
         }
     }
 }
コード例 #3
0
 public override void Request(long n)
 {
     if (SubscriptionHelper.Validate(n))
     {
         if (!BackpressureHelper.PostCompleteRequest <IList <T> >(ref requested, n, actual, lists, ref cancelled))
         {
             if (Volatile.Read(ref once) == 0 && Interlocked.CompareExchange(ref once, 1, 0) == 0)
             {
                 long r = BackpressureHelper.MultiplyCap(n - 1, size - skip);
                 long u = BackpressureHelper.AddCap(r, size);
                 s.Request(u);
             }
             else
             {
                 long r = BackpressureHelper.MultiplyCap(n, size - skip);
                 s.Request(r);
             }
         }
     }
 }
コード例 #4
0
 public void Request(long n)
 {
     if (OnSubscribeHelper.ValidateRequest(n))
     {
         if (BackpressureHelper.PostCompleteRequest(ref requested, n, buffers, actual, ref cancelled))
         {
             if (Volatile.Read(ref once) == 0 && Interlocked.CompareExchange(ref once, 1, 0) == 0)
             {
                 long u = BackpressureHelper.MultiplyCap(skip, n - 1);
                 long v = BackpressureHelper.AddCap(size, u);
                 s.Request(v);
             }
             else
             {
                 long u = BackpressureHelper.MultiplyCap(skip, n);
                 s.Request(u);
             }
         }
     }
 }
コード例 #5
0
 public void Request(long n)
 {
     BackpressureHelper.PostCompleteRequest(ref requested, n, q,
                                            actual, ref cancelled, v => v.value);
 }