protected void AsyncProcessQueue() { if (_closed.Value) { return; } if (_isWritingAsync.Exchange(true)) { return; } MessageBuffer buffer = _writeQueue.Peek(); try { _socket.BeginSend(buffer.Data(), buffer.Rpos(), buffer.GetActiveSize(), SocketFlags.None, out _error, SendDataCallback, null); } catch (Exception ex) { CloseSocket(); if (LogException) { FEL_LOG_WARN("network", "SocketBase::AsyncProcessQueue: {0} errored when _socket.BeginSend: ({1})", _remoteAddress.ToString(), ex.Message); } } }