|
|
@ -1479,17 +1479,7 @@ void fIOthread(void * iodata)
|
|
|
|
|
|
|
|
|
|
|
|
Core::~Core()
|
|
|
|
Core::~Core()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (MainThread::suspend().owns_lock())
|
|
|
|
// we leak the memory in case ~Core is called after _exit
|
|
|
|
MainThread::suspend().unlock();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (d->hotkeythread.joinable()) {
|
|
|
|
|
|
|
|
std::lock_guard<std::mutex> lock(HotkeyMutex);
|
|
|
|
|
|
|
|
hotkey_set = SHUTDOWN;
|
|
|
|
|
|
|
|
HotkeyCond.notify_one();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (d->iothread.joinable())
|
|
|
|
|
|
|
|
con.shutdown();
|
|
|
|
|
|
|
|
delete d;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Core::Core() :
|
|
|
|
Core::Core() :
|
|
|
@ -2299,6 +2289,8 @@ int Core::Shutdown ( void )
|
|
|
|
}
|
|
|
|
}
|
|
|
|
allModules.clear();
|
|
|
|
allModules.clear();
|
|
|
|
memset(&(s_mods), 0, sizeof(s_mods));
|
|
|
|
memset(&(s_mods), 0, sizeof(s_mods));
|
|
|
|
|
|
|
|
delete d;
|
|
|
|
|
|
|
|
d = nullptr;
|
|
|
|
return -1;
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|