private async Task SendAsync(IPooledBuffer datagram)
        {
            try
            {
                var length = datagram.Count;
                _log.Trace("Sending message {0} of length: {1}", _sendCount, length);
                await WriteLengthAsync(datagram.Count).ConfigureAwait(false);

                await _stream.WriteAsync(datagram.Array, datagram.Offset, length).ConfigureAwait(false);

                await _stream.FlushAsync().ConfigureAwait(false);

                _log.Trace("Sent message {0} of length {1}", _sendCount, length);
                _sendCount++;
            }
            catch
            {
                _receiver.TryTerminate();
                throw;
            }
            finally
            {
                datagram.Dispose();
            }
        }
Exemple #2
0
 private async Task SendAsync(IPooledBuffer message)
 {
     try
     {
         await _connection.Out.WriteAsync(message).ConfigureAwait(false);
     }
     catch
     {
         message.Dispose();
         throw;
     }
 }
Exemple #3
0
 private async Task SendAsync(IPooledBuffer message, IWriteOnlyChannel <IPooledBuffer> output)
 {
     try
     {
         await output.WriteAsync(message).ConfigureAwait(false);
     }
     catch
     {
         message.Dispose();
         throw;
     }
 }
Exemple #4
0
 private async Task WriteDatagram(IPooledBuffer datagram)
 {
     try
     {
         await _buffer.Out.WriteAsync(datagram, _cancellationToken).ConfigureAwait(false);
     }
     catch (Exception ex)
     {
         _log.Warn(ex, $"Caught exception during attempt to write datagram of length {datagram.Count}");
         datagram.Dispose();
         throw;
     }
 }
Exemple #5
0
 private async Task SendAsync(IPooledBuffer message, TransportMessage originalMessage, bool isHeader)
 {
     try
     {
         await _connection.Out.WriteAsync(message).ConfigureAwait(false);
     }
     catch (Exception ex)
     {
         var payloadType = isHeader ? "header" : "payload";
         _log.Warn(ex, $"Exception occurred while sending {payloadType} of message: {originalMessage}");
         message.Dispose();
         throw;
     }
 }
 private void DisposeRejected(IPooledBuffer msg)
 {
     msg.Dispose();
 }
Exemple #7
0
 private void DisposeRejected(IPooledBuffer msg)
 {
     _log.Trace("Disposing rejected message of length {0}", msg.Count);
     msg.Dispose();
 }