private void ReleaseUnmanagedResources() { if (_listeningSocket != IntPtr.Zero) { WinSock.closesocket(_listeningSocket); } }
public void Close() { if (Interlocked.Exchange(ref _requestQueue, null) == null) { return; } WinSock.closesocket(_socket); _socket = IntPtr.Zero; Closed?.Invoke(this); }
protected virtual void Dispose(bool disposing) { if (disposing) { Stop(); foreach (var worker in _workers) { worker.Dispose(); } _sessionManager?.Dispose(); } if (_listeningSocket != IntPtr.Zero) { WinSock.closesocket(_listeningSocket); } }
public void Close() { if (Interlocked.Exchange(ref _requestQueue, null) == null) { return; } _sendingBufferManager.CompleteAcquiring(); _receivingBufferManager.CompleteAcquiring(); WaitForPendingSendAndReceive(); WinSock.closesocket(_socket); _socket = IntPtr.Zero; _sendingBufferManager.Reset(); _receivingBufferManager.Reset(); _messageFramer.Reset(); Closed(this); }
private void Dispose(bool disposing) { if (disposing) { _session.Close(); _receiveCompletionProcessor.Stop(); _sendRequestProcessingEngine.Stop(); _completionQueues?.Dispose(); _sessionManager?.Dispose(); _sendRequestProcessingEngine?.Dispose(); _handshakeSignal?.Dispose(); } else { if (_socket != IntPtr.Zero) { WinSock.closesocket(_socket); } } }
private void StopAcceptLoop() { _isListening = false; WinSock.closesocket(_listeningSocket); _listeningThread.Join(TimeSpan.FromSeconds(10)); }