public Overlapped() { // The split between Overlapped and OverlappedData should not be needed. It is required by the implementation of // async GC handles currently. It expects OverlappedData to be a sealed type. _overlappedData = new OverlappedData(); _overlappedData._overlapped = this; }
public static unsafe void Free(NativeOverlapped *nativeOverlappedPtr) { ArgumentNullException.ThrowIfNull(nativeOverlappedPtr); OverlappedData.GetOverlappedFromNative(nativeOverlappedPtr)._overlapped !._overlappedData = null !; OverlappedData.FreeNativeOverlapped(nativeOverlappedPtr); }
public static unsafe Overlapped Unpack(NativeOverlapped *nativeOverlappedPtr) { if (nativeOverlappedPtr == null) { throw new ArgumentNullException(nameof(nativeOverlappedPtr)); } return(OverlappedData.GetOverlappedFromNative(nativeOverlappedPtr)._overlapped); }
public unsafe void ThreadPoolIODequeue(NativeOverlapped *nativeOverlapped) { if (IsEnabled(EventLevel.Verbose, Keywords.ThreadingKeyword | Keywords.ThreadTransferKeyword)) { ThreadPoolIODequeue( (IntPtr)nativeOverlapped, (IntPtr)OverlappedData.GetOverlappedFromNative(nativeOverlapped).GetHashCode()); } }
public static unsafe void Free(NativeOverlapped *nativeOverlappedPtr) { if (nativeOverlappedPtr == null) { throw new ArgumentNullException(nameof(nativeOverlappedPtr)); } OverlappedData.GetOverlappedFromNative(nativeOverlappedPtr)._overlapped._overlappedData = null; OverlappedData.FreeNativeOverlapped(nativeOverlappedPtr); }
public Overlapped() { _overlappedData = new OverlappedData(); _overlappedData._overlapped = this; }
public static unsafe Overlapped Unpack(NativeOverlapped *nativeOverlappedPtr) { ArgumentNullException.ThrowIfNull(nativeOverlappedPtr); return(OverlappedData.GetOverlappedFromNative(nativeOverlappedPtr)._overlapped !); }