From 39bc70cbf08c6253145efd97a877b745db7f1da2 Mon Sep 17 00:00:00 2001 From: Andre Crabb Date: Thu, 20 Sep 2018 07:17:35 -0400 Subject: [PATCH] * Cancel the TokenSource when disposing or nulling it out for the MqttClient --- Source/MQTTnet/Client/MqttClient.cs | 8 ++++---- Source/MQTTnet/Server/MqttClientSession.cs | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Source/MQTTnet/Client/MqttClient.cs b/Source/MQTTnet/Client/MqttClient.cs index ccedb5ae..bbe5ebd8 100644 --- a/Source/MQTTnet/Client/MqttClient.cs +++ b/Source/MQTTnet/Client/MqttClient.cs @@ -176,10 +176,12 @@ namespace MQTTnet.Client public void Dispose() { + _cancellationTokenSource?.Cancel (); _cancellationTokenSource?.Dispose(); _cancellationTokenSource = null; _adapter?.Dispose(); + _adapter = null; } private async Task AuthenticateAsync(MqttApplicationMessage willApplicationMessage, CancellationToken cancellationToken) @@ -238,10 +240,7 @@ namespace MQTTnet.Client } finally { - _adapter?.Dispose(); - _adapter = null; - _cancellationTokenSource?.Dispose(); - _cancellationTokenSource = null; + Dispose (); _cleanDisconnectInitiated = false; _logger.Info("Disconnected."); @@ -384,6 +383,7 @@ namespace MQTTnet.Client if (exception is OperationCanceledException) { + _logger.Info ("MQTT OperationCanceled exception while receiving packets."); } else if (exception is MqttCommunicationException) { diff --git a/Source/MQTTnet/Server/MqttClientSession.cs b/Source/MQTTnet/Server/MqttClientSession.cs index 429fdb45..b2bb96b3 100644 --- a/Source/MQTTnet/Server/MqttClientSession.cs +++ b/Source/MQTTnet/Server/MqttClientSession.cs @@ -125,7 +125,7 @@ namespace MQTTnet.Server } _adapter = null; - + _cancellationTokenSource?.Cancel (); _cancellationTokenSource?.Dispose(); _cancellationTokenSource = null; } @@ -240,7 +240,9 @@ namespace MQTTnet.Server { _pendingPacketsQueue?.Dispose(); + _cancellationTokenSource?.Cancel (); _cancellationTokenSource?.Dispose(); + _cancellationTokenSource = null; } private void ProcessReceivedPacket(IMqttChannelAdapter adapter, MqttBasePacket packet, CancellationToken cancellationToken)