We've also seen lobby client threads lingering and broadcasting on next play, but I think it might have been when we stopped the editor and didn't gracefully shut down networking.
ArenMook, perhaps it might be useful for TNServerInstance (and other TNet MonoBehaviours) to provide automatic clean up inside OnApplicationQuit()?
Finally, this might be a long shot, but I wonder whether LobbyServerLink's SendThread() is never exiting the loop on line 99:
... because of a compiler optimisation. Since mShutdown is written to by another thread, it should probably be declared volatile:
protected volatile bool mShutdown = false;
morty346, you could always ensure the lobby thread is shut down by joining with it. This isn't ideal because it'll block the calling thread, but it might help with testing. TNLobbyLink.cs ln 55, add mThread.Join():
if (!mShutdown)
{
mShutdown = true;
mThread.Join();
... etc
Cheers,
Scott