You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix GameState.Close teardown with lock instead of local captures
Local variable captures only prevented NullReferenceException but
not the logical race (double cleanup if two threads call Close
concurrently). Use lock(this) to make the entire teardown atomic.
This is safe because Channel.RemoveUser already locks on the
GameState (reentrant), and no other code path holds a different
lock before calling Close.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
0 commit comments