8 writes to _continuation
System.Threading.Channels (8)
System\Threading\Channels\AsyncOperation.cs (8)
85
_continuation
= pooled ? s_availableSentinel : null;
148
Volatile.Write(ref
_continuation
, s_availableSentinel); // only after fetching all needed data
174
Volatile.Write(ref
_continuation
, s_availableSentinel); // only after fetching all needed data
185
if (ReferenceEquals(Interlocked.CompareExchange(ref
_continuation
, null, s_availableSentinel), s_availableSentinel))
254
Action<object?>? prevContinuation = Interlocked.CompareExchange(ref
_continuation
, continuation, null);
383
if (_continuation != null || Interlocked.CompareExchange(ref
_continuation
, s_completedSentinel, null) != null)
434
_continuation
= s_completedSentinel;
443
thisRef.
_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>
126
internal bool IsCompleted => ReferenceEquals(
_continuation
, s_completedSentinel);
383
if (
_continuation
!= null || Interlocked.CompareExchange(ref _continuation, s_completedSentinel, null) != null)
385
Debug.Assert(
_continuation
!= s_completedSentinel, $"The continuation was the completion sentinel.");
386
Debug.Assert(
_continuation
!= s_availableSentinel, $"The continuation was the available sentinel.");
433
Action<object?> c =
_continuation
!;
442
Action<object?> c = thisRef.
_continuation
!;