Fix STK hanging on shutdown when networking disabled
This commit is contained in:
parent
9d51713300
commit
562fe8a4c8
@ -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))
|
||||
{
|
||||
|
@ -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;
|
||||
|
@ -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")
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user