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

◆ RegisterForCancellation()

unsafe void System.IO.Strategies.Net5CompatFileStreamStrategy.CompletionSource.RegisterForCancellation ( CancellationToken cancellationToken)
inlineinherited

Definition at line 44 of file Net5CompatFileStreamStrategy.cs.

45 {
46 if (_overlapped != null)
47 {
48 Action<object> callback = Cancel;
49 long num = Interlocked.CompareExchange(ref _result, 17179869184L, 0L);
50 switch (num)
51 {
52 case 0L:
53 _cancellationRegistration = cancellationToken.UnsafeRegister(callback, this);
54 num = Interlocked.Exchange(ref _result, 0L);
55 break;
56 default:
57 num = Interlocked.Exchange(ref _result, 0L);
58 break;
59 case 34359738368L:
60 break;
61 }
62 if (num != 0L && num != 34359738368L && num != 17179869184L)
63 {
64 CompleteCallback((ulong)num);
65 }
66 }
67 }
static int CompareExchange(ref int location1, int value, int comparand)
static int Exchange(ref int location1, int value)

References System.IO.Strategies.Net5CompatFileStreamStrategy.CompletionSource._cancellationRegistration, System.IO.Strategies.Net5CompatFileStreamStrategy.CompletionSource._overlapped, System.IO.Strategies.Net5CompatFileStreamStrategy.CompletionSource._result, System.Threading.Tasks.Cancel, System.cancellationToken, System.Threading.Interlocked.CompareExchange(), System.IO.Strategies.Net5CompatFileStreamStrategy.CompletionSource.CompleteCallback(), System.Threading.Interlocked.Exchange(), and System.L.

Referenced by System.IO.Strategies.Net5CompatFileStreamStrategy.ReadNativeAsync(), and System.IO.Strategies.Net5CompatFileStreamStrategy.WriteAsyncInternalCore().