Example #1
0
File: Ukcp.cs Project: sekkit/Fenix
 internal void read(IByteBuffer iByteBuffer)
 {
     if (_readQueue.TryEnqueue(iByteBuffer))
     {
         notifyReadEvent();
     }
     else
     {
         iByteBuffer.Release();
         Console.WriteLine("conv " + _kcp.Conv + " recieveList is full");
     }
 }
Example #2
0
        /**
         * 主动发消息使用
         * 线程安全的
         * @param IByteBuffer 发送后需要手动释放
         * @return
         */
        public bool writeMessage(IByteBuffer byteBuffer)
        {
            byteBuffer = byteBuffer.RetainedDuplicate();

            if (!_writeQueue.TryEnqueue(byteBuffer))
            {
                Console.WriteLine("conv " + kcp.Conv + " sendList is full");
                byteBuffer.Release();
                return(false);
            }
            notifyWriteEvent();
            return(true);
        }
Example #3
0
 protected override bool TryEnqueue(ITask task)
 {
     return(_queue.TryEnqueue(task));
 }