From 16180e83baa7918104d35ea93b59e750bfbfb21d Mon Sep 17 00:00:00 2001 From: JanEggers Date: Wed, 27 May 2020 20:38:34 +0200 Subject: [PATCH] fixed parallel writes #932 --- Source/MQTTnet.AspnetCore/MqttConnectionContext.cs | 8 +++----- .../MQTTnet.AspNetCore.Tests/MqttConnectionContextTest.cs | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/Source/MQTTnet.AspnetCore/MqttConnectionContext.cs b/Source/MQTTnet.AspnetCore/MqttConnectionContext.cs index 47efc013..81c2cb9f 100644 --- a/Source/MQTTnet.AspnetCore/MqttConnectionContext.cs +++ b/Source/MQTTnet.AspnetCore/MqttConnectionContext.cs @@ -163,18 +163,16 @@ namespace MQTTnet.AspNetCore public async Task SendPacketAsync(MqttBasePacket packet, TimeSpan timeout, CancellationToken cancellationToken) { var formatter = PacketFormatterAdapter; - var buffer = formatter.Encode(packet); - var msg = buffer.AsMemory(); - var output = _output; - using (await _writerLock.WaitAsync(cancellationToken).ConfigureAwait(false)) { + var buffer = formatter.Encode(packet); + var msg = buffer.AsMemory(); + var output = _output; var result = await output.WriteAsync(msg, cancellationToken).ConfigureAwait(false); if (result.IsCompleted) { BytesSent += msg.Length; } - PacketFormatterAdapter.FreeBuffer(); } } diff --git a/Tests/MQTTnet.AspNetCore.Tests/MqttConnectionContextTest.cs b/Tests/MQTTnet.AspNetCore.Tests/MqttConnectionContextTest.cs index 2b5bf473..46e8c651 100644 --- a/Tests/MQTTnet.AspNetCore.Tests/MqttConnectionContextTest.cs +++ b/Tests/MQTTnet.AspNetCore.Tests/MqttConnectionContextTest.cs @@ -45,7 +45,7 @@ namespace MQTTnet.AspNetCore.Tests connection.Transport = pipe; var ctx = new MqttConnectionContext(serializer, connection); - var tasks = Enumerable.Range(1, 10).Select(_ => Task.Run(async () => + var tasks = Enumerable.Range(1, 100).Select(_ => Task.Run(async () => { for (int i = 0; i < 100; i++) {