8 writes to _continuation
System.Threading.Channels (8)
System\Threading\Channels\AsyncOperation.cs (8)
85_continuation = pooled ? s_availableSentinel : null; 148Volatile.Write(ref _continuation, s_availableSentinel); // only after fetching all needed data 174Volatile.Write(ref _continuation, s_availableSentinel); // only after fetching all needed data 185if (ReferenceEquals(Interlocked.CompareExchange(ref _continuation, null, s_availableSentinel), s_availableSentinel)) 254Action<object?>? prevContinuation = Interlocked.CompareExchange(ref _continuation, continuation, null); 383if (_continuation != null || Interlocked.CompareExchange(ref _continuation, s_completedSentinel, null) != null) 434_continuation = s_completedSentinel; 443thisRef._continuation = s_completedSentinel;
8 references to _continuation
System.Threading.Channels (8)
System\Threading\Channels\AsyncOperation.cs (8)
66/// <summary>State object to be passed to <see cref="_continuation"/>.</summary> 70/// <summary>Execution context to use when invoking <see cref="_continuation"/>. May be null.</summary> 126internal bool IsCompleted => ReferenceEquals(_continuation, s_completedSentinel); 383if (_continuation != null || Interlocked.CompareExchange(ref _continuation, s_completedSentinel, null) != null) 385Debug.Assert(_continuation != s_completedSentinel, $"The continuation was the completion sentinel."); 386Debug.Assert(_continuation != s_availableSentinel, $"The continuation was the available sentinel."); 433Action<object?> c = _continuation!; 442Action<object?> c = thisRef._continuation!;