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);
     }
 }
Esempio n. 2
0
            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);
                }
            }