private static unsafe void IOCompleted(DisconnectAsyncResult asyncResult, uint errorCode, uint numBytes, NativeOverlapped* nativeOverlapped) { if (NetEventSource.IsEnabled) NetEventSource.Info(null, "_connectionId:" + asyncResult._connectionId); asyncResult._httpListener._requestQueueBoundHandle.FreeNativeOverlapped(nativeOverlapped); if (Interlocked.Exchange(ref asyncResult._ownershipState, 2) == 0) { asyncResult.HandleDisconnect(); } }
private static unsafe void IOCompleted(DisconnectAsyncResult asyncResult, uint errorCode, uint numBytes, NativeOverlapped* nativeOverlapped) { GlobalLog.Print("DisconnectAsyncResult#" + ValidationHelper.HashString(asyncResult) + "::WaitCallback() m_ConnectionId:" + asyncResult.m_ConnectionId); Overlapped.Free(nativeOverlapped); if (Interlocked.Exchange(ref asyncResult.m_OwnershipState, 2) == 0) { asyncResult.HandleDisconnect(); } }