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
|
#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))
|
if (!SFXManager::get()->waitForReadyToDeleted(2.0f))
|
||||||
{
|
{
|
||||||
|
@ -165,7 +165,8 @@ namespace Online
|
|||||||
*/
|
*/
|
||||||
void RequestManager::addRequest(Request *request)
|
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");
|
Log::error("RequestManager", "addRequest called, but internet connections are forbidden");
|
||||||
return;
|
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,
|
// If internet is being activated, enable immediately. If it's being disabled,
|
||||||
// we'll disable later after logout.
|
// we'll disable later after logout.
|
||||||
if (internet->getState())
|
if (internet->getState())
|
||||||
|
{
|
||||||
UserConfigParams::m_internet_status = RequestManager::IPERM_ALLOWED;
|
UserConfigParams::m_internet_status = RequestManager::IPERM_ALLOWED;
|
||||||
|
|
||||||
|
if (!RequestManager::isRunning())
|
||||||
|
RequestManager::get()->startNetworkThread();
|
||||||
|
}
|
||||||
|
|
||||||
// If internet gets enabled, re-initialise the addon manager (which
|
// If internet gets enabled, re-initialise the addon manager (which
|
||||||
// happens in a separate thread) so that news.xml etc can be
|
// happens in a separate thread) so that news.xml etc can be
|
||||||
// downloaded if necessary.
|
// 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
|
// Deactivate internet after 'requestSignOut' so that the sign out request is allowed
|
||||||
if (!internet->getState())
|
if (!internet->getState())
|
||||||
|
{
|
||||||
UserConfigParams::m_internet_status = RequestManager::IPERM_NOT_ALLOWED;
|
UserConfigParams::m_internet_status = RequestManager::IPERM_NOT_ALLOWED;
|
||||||
|
RequestManager::get()->stopNetworkThread();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (name=="enable-hw-report")
|
else if (name=="enable-hw-report")
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user