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

◆ IOCallback()

static unsafe void System.IO.Strategies.Net5CompatFileStreamStrategy.CompletionSource.IOCallback ( uint errorCode,
uint numBytes,
NativeOverlapped * pOverlapped )
inlinestaticpackageinherited

Definition at line 80 of file Net5CompatFileStreamStrategy.cs.

81 {
82 object nativeOverlappedState = ThreadPoolBoundHandle.GetNativeOverlappedState(pOverlapped);
83 CompletionSource completionSource = ((!(nativeOverlappedState is Net5CompatFileStreamStrategy net5CompatFileStreamStrategy)) ? ((CompletionSource)nativeOverlappedState) : net5CompatFileStreamStrategy._currentOverlappedOwner);
84 CompletionSource completionSource2 = completionSource;
85 ulong num = ((errorCode == 0 || errorCode == 109 || errorCode == 232) ? (0x100000000uL | numBytes) : (0x200000000uL | errorCode));
86 if (Interlocked.Exchange(ref completionSource2._result, (long)num) == 0L && Interlocked.Exchange(ref completionSource2._result, 34359738368L) != 0L)
87 {
88 completionSource2.CompleteCallback(num);
89 }
90 }
unsafe CompletionSource(Net5CompatFileStreamStrategy strategy, PreAllocatedOverlapped preallocatedOverlapped, int numBufferedBytes, byte[] bytes)
Net5CompatFileStreamStrategy(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync)
static int Exchange(ref int location1, int value)
static unsafe? object GetNativeOverlappedState(NativeOverlapped *overlapped)

References System.IO.Strategies.Net5CompatFileStreamStrategy.CompletionSource.CompletionSource(), System.IO.Strategies.Net5CompatFileStreamStrategy.CompletionSource._result, System.IO.Strategies.Net5CompatFileStreamStrategy.CompletionSource.CompleteCallback(), System.Threading.Interlocked.Exchange(), System.Threading.ThreadPoolBoundHandle.GetNativeOverlappedState(), and System.L.