public bool Push(IMessage item) { if (eState.None == m_eState) { return(false); } var spinWait = new SpinWait(); while (true) { if (false == m_queue.Enqueue(item)) { spinWait.SpinOnce(); Logger.Warn("Queue Full"); return(false); } else { break; } } return(true); }
public override bool TrySend(ArraySegment <byte> segment) { //DetectConnected(); if (Client == null) { return(true); } if (!m_SendingQueue.Enqueue(segment)) { return(false); } if (Interlocked.CompareExchange(ref m_IsSending, 1, 0) != 0) { return(true); } DequeueSend(); return(true); }
public void Add(T item) { _queue.Enqueue(item); _batchNotifier.Notify(); }