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

◆ InternalCancel() [2/2]

void System.Threading.Tasks.Task< TResult >.InternalCancel ( )
inlinepackageinherited

Definition at line 2441 of file Task.cs.

2442 {
2443 TaskSchedulerException ex = null;
2444 bool flag = false;
2445 if (((uint)m_stateFlags & 0x10000u) != 0)
2446 {
2447 TaskScheduler taskScheduler = m_taskScheduler;
2448 try
2449 {
2450 flag = taskScheduler?.TryDequeue(this) ?? false;
2451 }
2453 {
2454 ex = new TaskSchedulerException(innerException);
2455 }
2456 }
2458 bool flag2 = false;
2459 if (flag)
2460 {
2461 flag2 = AtomicStateUpdate(4194304, 4325376);
2462 }
2463 else if ((m_stateFlags & 0x10000) == 0)
2464 {
2465 flag2 = AtomicStateUpdate(4194304, 23265280);
2466 }
2467 if (flag2)
2468 {
2470 }
2471 if (ex != null)
2472 {
2473 throw ex;
2474 }
2475 }
TaskScheduler m_taskScheduler
Definition Task.cs:952
volatile int m_stateFlags
Definition Task.cs:954
AggregateException? Exception
Definition Task.cs:1014
void RecordInternalCancellationRequest()
Definition Task.cs:2483
bool AtomicStateUpdate(int newBits, int illegalBits)
Definition Task.cs:1374

References System.Threading.Tasks.Task< TResult >.AtomicStateUpdate(), System.Threading.Tasks.Task< TResult >.CancellationCleanupLogic(), System.Threading.Tasks.Task< TResult >.m_stateFlags, System.Threading.Tasks.Task< TResult >.m_taskScheduler, and System.Threading.Tasks.Task< TResult >.RecordInternalCancellationRequest().

Referenced by System.Threading.Tasks.Task< TResult >.AssignCancellationToken().