public void Dispose() { _epoll?.Dispose(); _pipeEnds.Dispose(); MemoryPool?.Dispose(); if (_aioEventsMemory != IntPtr.Zero) { Marshal.FreeHGlobal(_aioEventsMemory); } if (_aioCbsMemory != IntPtr.Zero) { Marshal.FreeHGlobal(_aioCbsMemory); } if (_aioCbsTableMemory != IntPtr.Zero) { Marshal.FreeHGlobal(_aioCbsTableMemory); } if (_ioVectorTableMemory != IntPtr.Zero) { Marshal.FreeHGlobal(_ioVectorTableMemory); } if (_aioContext != IntPtr.Zero) { AioInterop.IoDestroy(_aioContext); } }
public unsafe void Dispose() { AbortQueuedConnectionAsync().GetAwaiter().GetResult(); _epoll?.Dispose(); _pipeEnds.Dispose(); MemoryPool?.Dispose(); if (_aioEventsMemory != IntPtr.Zero) { Marshal.FreeHGlobal(_aioEventsMemory); } if (_aioCbsMemory != IntPtr.Zero) { Marshal.FreeHGlobal(_aioCbsMemory); } if (_aioCbsTableMemory != IntPtr.Zero) { Marshal.FreeHGlobal(_aioCbsTableMemory); } if (_ioVectorTableMemory != IntPtr.Zero) { Marshal.FreeHGlobal(_ioVectorTableMemory); } if (_aioContext.ring != null) { AioInterop.IoDestroy(_aioContext); } }