private void CloseSession(PlayerSession session)
        {
            var didDispose = false;

            lock (session)
            {
                if (!session.Disposed)
                {
                    session.Disposed = true;
                    didDispose       = true;
                }
            }

            if (didDispose)
            {
                session.Dispose();
                lock (_sessions)
                {
                    _sessions.Remove(session);
                }
            }
        }