public void InnerComplete(InnerObserver <R> sender) { sender.Dispose(); if (Volatile.Read(ref active) == sender) { sender.SetDone(); Drain(); } }
public void InnerError(InnerObserver <R> sender, Exception error) { if (Interlocked.CompareExchange(ref this.error, error, null) == null) { sender.SetDone(); Volatile.Write(ref done, true); Drain(); } }
public void InnerError(InnerObserver <R> sender, Exception error) { sender.Dispose(); if (Volatile.Read(ref active) == sender) { if (delayErrors) { ExceptionHelper.AddException(ref errors, error); sender.SetDone(); Drain(); } else { if (Interlocked.CompareExchange(ref errors, error, null) == null) { sender.SetDone(); Drain(); } } } }
void InnerError(InnerObserver sender, Exception error) { if (delayErrors) { ExceptionHelper.AddException(ref errors, error); sender.SetDone(); } else { Interlocked.CompareExchange(ref errors, error, null); } Drain(); }
internal void InnerError(InnerObserver sender, Exception ex) { if (delayErrors) { if (ExceptionHelper.AddException(ref error, ex)) { sender.SetDone(); Drain(); } } else { if (Interlocked.CompareExchange(ref error, ex, null) == null) { Drain(); } } }
public void InnerComplete(InnerObserver <R> sender) { sender.SetDone(); Drain(); }