Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ RemoveContinuation() [2/2]

void System.Threading.Tasks.Task< TResult >.RemoveContinuation ( object continuationObject)
inlinepackageinherited

Definition at line 3005 of file Task.cs.

3006 {
3009 {
3010 return;
3011 }
3013 if (list == null)
3014 {
3015 if (Interlocked.CompareExchange(ref m_continuationObject, new List<object>(), continuationObject) == continuationObject)
3016 {
3017 return;
3018 }
3020 }
3021 if (list == null)
3022 {
3023 return;
3024 }
3025 lock (list)
3026 {
3028 {
3029 int num = list.IndexOf(continuationObject);
3030 if (num != -1)
3031 {
3032 list[num] = null;
3033 }
3034 }
3035 }
3036 }
volatile object m_continuationObject
Definition Task.cs:956
static readonly object s_taskCompletionSentinel
Definition Task.cs:958

References System.Threading.Interlocked.CompareExchange(), System.list, System.Threading.Tasks.Task< TResult >.m_continuationObject, and System.Threading.Tasks.Task< TResult >.s_taskCompletionSentinel.

Referenced by System.Threading.Tasks.Task< TResult >.CancellationPromise< TResult >.Cleanup(), and System.Threading.Tasks.Task< TResult >.SpinThenBlockingWait().