Fix crash caused when downloading requests for icons were still

executing at game end.
This commit is contained in:
hiker 2014-08-18 22:42:27 +10:00
parent fcb80cdb2c
commit b2a936c8cd
2 changed files with 7 additions and 2 deletions

View File

@ -1436,7 +1436,6 @@ static void cleanSuperTuxKart()
Referee::cleanup();
if(ReplayPlay::get()) ReplayPlay::destroy();
if(race_manager) delete race_manager;
if(addons_manager) delete addons_manager;
if(grand_prix_manager) delete grand_prix_manager;
if(highscore_manager) delete highscore_manager;
if(attachment_manager) delete attachment_manager;
@ -1476,6 +1475,10 @@ static void cleanSuperTuxKart()
}
Online::RequestManager::deallocate();
// The addons manager might still be called from a currenty running request
// in the request manager, so it can not be deleted earlier.
if(addons_manager) delete addons_manager;
// FIXME: do we need to wait for threads there, can they be
// moved further up?
Online::ServersManager::deallocate();

View File

@ -221,7 +221,9 @@ namespace Online
me->m_request_queue.unlock();
me->m_current_request->execute();
me->addResult(me->m_current_request);
// This test is necessary in case that execute() was aborted
// (otherwise the assert in addResult will be triggered).
if (!me->getAbort()) me->addResult(me->m_current_request);
me->m_request_queue.lock();
} // while handle all requests