9 writes to _continuation
System.Threading.Channels (9)
System\Threading\Channels\AsyncOperation.cs (9)
108
_continuation
= pooled ? s_availableSentinel : null;
209
if (Volatile.Read(ref
_continuation
) is not null ||
210
Interlocked.CompareExchange(ref
_continuation
, s_completedSentinel, null) is not null)
279
_continuation
= s_completedSentinel;
290
thisRef.
_continuation
= s_completedSentinel;
361
Action<object?>? prevContinuation = Interlocked.CompareExchange(ref
_continuation
, continuation, null);
473
Volatile.Write(ref
_continuation
, s_availableSentinel); // only after fetching all needed data
518
Volatile.Write(ref
_continuation
, s_availableSentinel); // only after fetching all needed data
530
if (ReferenceEquals(Interlocked.CompareExchange(ref
_continuation
, null, s_availableSentinel), s_availableSentinel))
7 references to _continuation
System.Threading.Channels (7)
System\Threading\Channels\AsyncOperation.cs (7)
76
/// <summary>State object to be passed to <see cref="
_continuation
"/>.</summary>
142
internal bool IsCompleted => ReferenceEquals(
_continuation
, s_completedSentinel);
212
Debug.Assert(
_continuation
!= s_completedSentinel, $"The continuation was the completion sentinel.");
213
Debug.Assert(
_continuation
!= s_availableSentinel, $"The continuation was the available sentinel.");
267
Debug.Assert(
_continuation
is not null);
278
Action<object?> c =
_continuation
!;
289
Action<object?> c = thisRef.
_continuation
!;