Refactor code.

This commit is contained in:
Christian
2021-04-05 12:50:42 +02:00
parent 962622a9f7
commit 77338527b4
3 changed files with 7 additions and 4 deletions
+5 -2
View File
@@ -320,10 +320,12 @@ namespace MQTTnet.Client
Task DisconnectInternalAsync(Task sender, Exception exception, MqttClientAuthenticateResult authenticateResult)
{
var clientWasConnected = IsConnected;
if (!DisconnectIsPendingOrFinished())
{
return DisconnectCoreAsync(sender, exception, authenticateResult, clientWasConnected);
}
return PlatformAbstractionLayer.CompletedTask;
}
@@ -371,8 +373,7 @@ namespace MQTTnet.Client
{
// This handler must be executed in a new thread because otherwise a dead lock may happen
// when trying to reconnect in that handler etc.
Task.Run(() => disconnectedHandler.HandleDisconnectedAsync(new MqttClientDisconnectedEventArgs(clientWasConnected, exception, authenticateResult, _disconnectReason)))
.RunInBackground(_logger);
Task.Run(() => disconnectedHandler.HandleDisconnectedAsync(new MqttClientDisconnectedEventArgs(clientWasConnected, exception, authenticateResult, _disconnectReason))).RunInBackground(_logger);
}
}
}
@@ -798,6 +799,7 @@ namespace MQTTnet.Client
bool DisconnectIsPendingOrFinished()
{
var connectionStatus = (MqttClientConnectionStatus)_connectionStatus;
do
{
switch (connectionStatus)
@@ -814,6 +816,7 @@ namespace MQTTnet.Client
{
return false;
}
connectionStatus = curStatus;
break;
}
@@ -1,9 +1,8 @@
namespace MQTTnet.Client
{
public enum MqttClientConnectionStatus
{
Disconnected = 0,
Disconnected,
Disconnecting,
Connected,
Connecting