Fix STK hanging on shutdown when networking disabled

This commit is contained in:
auria.mg 2018-11-23 19:07:58 -05:00
parent 9d51713300
commit 562fe8a4c8
3 changed files with 16 additions and 4 deletions

View File

@ -2356,11 +2356,14 @@ static void cleanSuperTuxKart()
}
#endif
if(!Online::RequestManager::get()->waitForReadyToDeleted(5.0f))
if (Online::RequestManager::get()->waitForReadyToDeleted(5.0f))
{
Log::info("Thread", "Request Manager not aborting in time, aborting.");
Online::RequestManager::deallocate();
}
else
{
Log::warn("Thread", "Request Manager not aborting in time, proceeding without cleanup.");
}
Online::RequestManager::deallocate();
if (!SFXManager::get()->waitForReadyToDeleted(2.0f))
{

View File

@ -165,7 +165,8 @@ namespace Online
*/
void RequestManager::addRequest(Request *request)
{
if (UserConfigParams::m_internet_status == RequestManager::IPERM_NOT_ALLOWED)
if (UserConfigParams::m_internet_status == RequestManager::IPERM_NOT_ALLOWED
&& request->getType() != Request::RT_QUIT)
{
Log::error("RequestManager", "addRequest called, but internet connections are forbidden");
return;

View File

@ -156,8 +156,13 @@ void OptionsScreenGeneral::eventCallback(Widget* widget, const std::string& name
// If internet is being activated, enable immediately. If it's being disabled,
// we'll disable later after logout.
if (internet->getState())
{
UserConfigParams::m_internet_status = RequestManager::IPERM_ALLOWED;
if (!RequestManager::isRunning())
RequestManager::get()->startNetworkThread();
}
// If internet gets enabled, re-initialise the addon manager (which
// happens in a separate thread) so that news.xml etc can be
// downloaded if necessary.
@ -188,7 +193,10 @@ void OptionsScreenGeneral::eventCallback(Widget* widget, const std::string& name
// Deactivate internet after 'requestSignOut' so that the sign out request is allowed
if (!internet->getState())
{
UserConfigParams::m_internet_status = RequestManager::IPERM_NOT_ALLOWED;
RequestManager::get()->stopNetworkThread();
}
}
else if (name=="enable-hw-report")
{