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); }