internal bool TryDequeueOrReset(out SocketAsyncResult result) { lock (socket) { if (sendQueue.TryDequeue(out result)) { return(true); } else { Interlocked.Exchange(ref isInSending, 0); } return(false); } }
/// <summary> /// /// </summary> /// <param name="skip"></param> public virtual void Reset(bool skip) { byteArrayForMessage = null; Array.Clear(byteArrayForPrefix, 0, byteArrayForPrefix.Length); messageBytesDone = 0; prefixBytesDone = 0; messageLength = 0; byteArrayForPrefix2 = null; prefixBytesDone2 = 0; byteArrayMask = null; maskBytesDone = 0; HeadFrame = null; AsyncResult = null; if (skip) { bufferSkip = 0; } }