Skip to content

Commit 282f45d

Browse files
committed
adding workaround for idempotent shutdown
1 parent e2347f5 commit 282f45d

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

Assets/BossRoom/Scripts/Shared/Net/ConnectionManagement/ClientGameNetPortal.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ public void OnUserDisconnectRequest()
117117
}
118118

119119
// only do it here if we are not the host. The host will do it in ServerGameNetPortal
120-
if (!m_Portal.NetManager.IsHost)
120+
if (!m_Portal.NetManager.IsHost && m_Portal.NetManager.IsListening)
121121
{
122122
m_Portal.NetManager.Shutdown();
123123
}
@@ -199,7 +199,11 @@ private IEnumerator TryToReconnect(string lobbyCode)
199199
int nbTries = 0;
200200
while (nbTries < k_NbReconnectAttempts)
201201
{
202-
NetworkManager.Singleton.Shutdown();
202+
if (NetworkManager.Singleton.IsListening)
203+
{
204+
NetworkManager.Singleton.Shutdown();
205+
}
206+
203207
yield return new WaitWhile(() => NetworkManager.Singleton.ShutdownInProgress); // wait until NetworkManager completes shutting down
204208
Debug.Log($"Reconnecting attempt {nbTries + 1}/{k_NbReconnectAttempts}...");
205209
if (!string.IsNullOrEmpty(lobbyCode))
@@ -227,7 +231,7 @@ private IEnumerator TryToReconnect(string lobbyCode)
227231
m_LobbyServiceFacade.ForceLeaveLobbyAttempt();
228232
if (NetworkManager.Singleton.IsListening)
229233
{
230-
NetworkManager.Singleton.Shutdown();
234+
NetworkManager.Singleton.Shutdown();
231235
}
232236

233237
SceneLoaderWrapper.Instance.LoadScene("MainMenu");

Assets/BossRoom/Scripts/Shared/Net/ConnectionManagement/ServerGameNetPortal.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,11 @@ IEnumerator WaitToShutdown()
145145
yield return null; // todo still needed? wait for UTP's update for it to send it's batched messages
146146
yield return null;
147147
SessionManager<SessionPlayerData>.Instance.OnUserDisconnectRequest();
148-
m_Portal.NetManager.Shutdown();
148+
if (m_Portal.NetManager.IsListening)
149+
{
150+
m_Portal.NetManager.Shutdown();
151+
}
152+
149153
SceneLoaderWrapper.Instance.IsClosingClients = false;
150154
}
151155

0 commit comments

Comments
 (0)