fix: added a finally block

added a finally block in case all else fails to switch out the connection status
This commit is contained in:
Nick Genovese
2022-10-20 13:38:04 -04:00
parent 2b95b49b74
commit 71ece029bf

View File

@@ -279,7 +279,7 @@ namespace PepperDash.Core
Debug.Console(1, this, "Ingoring connection request while connect/disconnect in progress..."); Debug.Console(1, this, "Ingoring connection request while connect/disconnect in progress...");
if (!connectTimer.Disposed && AutoReconnect) if (!connectTimer.Disposed && AutoReconnect)
connectTimer.Reset(10000); connectTimer.Reset(AutoReconnectIntervalMs);
} }
} }
@@ -377,6 +377,8 @@ namespace PepperDash.Core
} }
private void DisconnectInternal(SocketStatus status) private void DisconnectInternal(SocketStatus status)
{
try
{ {
DisposeOfStream(); DisposeOfStream();
DisposeOfClient(); DisposeOfClient();
@@ -391,9 +393,16 @@ namespace PepperDash.Core
Debug.Console(1, this, "Autoreconnect try again soon"); Debug.Console(1, this, "Autoreconnect try again soon");
connectTimer.Reset(AutoReconnectIntervalMs); connectTimer.Reset(AutoReconnectIntervalMs);
} }
}
catch (Exception ex)
{
Debug.Console(1, this, Debug.ErrorLogLevel.Notice, "Caught a general exception in disconnect:{0}", ex);
}
finally
{
Interlocked.Exchange(ref connectionProgress, ConnectionProgress.Idle); Interlocked.Exchange(ref connectionProgress, ConnectionProgress.Idle);
} }
}
private void DisposeOfAuthMethods() private void DisposeOfAuthMethods()
{ {