/// <summary> /// Send pending packets /// </summary> /// <returns>SNI error code</returns> private uint SendPendingPackets() { SNIMarsQueuedPacket packet = null; while (true) { lock (this) { if (_sequenceNumber < _sendHighwater) { if (_sendPacketQueue.Count != 0) { packet = _sendPacketQueue.Peek(); uint result = InternalSendAsync(packet.Packet, packet.Callback); if (result != TdsEnums.SNI_SUCCESS && result != TdsEnums.SNI_SUCCESS_IO_PENDING) { return(result); } _sendPacketQueue.Dequeue(); continue; } else { _ackEvent.Set(); } } break; } } return(TdsEnums.SNI_SUCCESS); }
/// <summary> /// Send pending packets /// </summary> /// <returns>True if all packets finished sending sync or an error occurred, otherwise false</returns> private void SendPendingPackets() { while (true) { lock (this) { if (_sequenceNumber < _sendHighwater) { if (_sendPacketQueue.Count != 0) { SNIMarsQueuedPacket packet = _sendPacketQueue.Peek(); if (!InternalSendAsync(packet.Packet, packet.Callback)) { return; } _sendPacketQueue.Dequeue(); continue; } else { _ackEvent.Set(); } } break; } } }