Merge pull request #95 from PepperDash/hotfix/tcp-client-disconnect-timer-exeption

#94 adds null check in timer callback and stops timer on user disconnect call
This commit is contained in:
Neil Dorin
2021-04-22 14:39:02 -06:00
committed by GitHub

View File

@@ -284,9 +284,17 @@ namespace PepperDash.Core
/// </summary>
public void Disconnect()
{
DisconnectCalledByUser = true;
// Stop trying reconnects, if we are
if (RetryTimer != null)
{
RetryTimer.Stop();
RetryTimer = null;
}
if (Client != null)
{
DisconnectCalledByUser = true;
DisconnectClient();
Client = null;
Debug.Console(1, this, "Disconnected");
@@ -329,7 +337,15 @@ namespace PepperDash.Core
Debug.Console(1, this, "Attempting reconnect, status={0}", Client.ClientStatus);
if (!DisconnectCalledByUser)
RetryTimer = new CTimer(o => { Client.ConnectToServerAsync(ConnectToServerCallback); }, AutoReconnectIntervalMs);
RetryTimer = new CTimer(o =>
{
if (Client == null)
{
return;
}
Client.ConnectToServerAsync(ConnectToServerCallback);
}, AutoReconnectIntervalMs);
}
}