10 writes to _continuation
System.Threading.Channels (10)
System\Threading\Channels\AsyncOperation.cs (10)
112_continuation = pooled ? s_availableSentinel : null; 143internal bool IsCompleted => ReferenceEquals(Volatile.Read(ref _continuation), s_completedSentinel); 210if (Volatile.Read(ref _continuation) is not null || 211Interlocked.CompareExchange(ref _continuation, s_completedSentinel, null) is not null) 281_continuation = s_completedSentinel; 292thisRef._continuation = s_completedSentinel; 363Action<object?>? prevContinuation = Interlocked.CompareExchange(ref _continuation, continuation, null); 486Volatile.Write(ref _continuation, s_availableSentinel); 542Volatile.Write(ref _continuation, s_availableSentinel); 560if (ReferenceEquals(Interlocked.CompareExchange(ref _continuation, null, s_availableSentinel), s_availableSentinel))
6 references to _continuation
System.Threading.Channels (6)
System\Threading\Channels\AsyncOperation.cs (6)
79/// <summary>State object to be passed to <see cref="_continuation"/>.</summary> 213Debug.Assert(_continuation != s_completedSentinel, $"The continuation was the completion sentinel."); 214Debug.Assert(_continuation != s_availableSentinel, $"The continuation was the available sentinel."); 268Debug.Assert(_continuation is not null); 280Action<object?> c = _continuation!; 291Action<object?> c = thisRef._continuation!;