Further paranoia changes to prevent timer callbacks from occurring in an uncontrolled state.

This commit is contained in:
lotodore
2009-06-15 22:34:07 +00:00
parent 3d57f65e2b
commit 22edd63dde
6 changed files with 66 additions and 5 deletions
+2 -3
View File
@@ -69,8 +69,7 @@ void
ServerGame::Exit()
{
m_voteKickTimer.cancel();
if (m_curState)
m_curState->Exit(shared_from_this());
SetState(ServerGameStateFinal::Instance());
}
u_int32_t
@@ -131,7 +130,7 @@ ServerGame::RemoveAllSessions()
void
ServerGame::TimerVoteKick(const boost::system::error_code &ec)
{
if (!ec)
if (!ec && m_curState != &ServerGameStateFinal::Instance())
{
// Check whether someone should be kicked, or whether a vote kick should be aborted.
// Only one vote kick can be active at a time.