Exemple #1
0
        private bool FlushPending(SendToken s)
        {
            Packet packet;

            for (var i = 0; i < 3; i++)
            {
                while (_pendings[i].TryDequeue(out packet))
                {
                    var bytesWritten = packet.Write(_client, s.Data, s.BytesAvailable);

                    if (bytesWritten == 0)
                    {
                        _pendings[i].Enqueue(packet);
                        return(true);
                    }

                    s.BytesAvailable += bytesWritten;
                }
            }

            if (s.BytesAvailable <= 0)
            {
                return(false);
            }

            return(true);
        }