Merge pull request #8178 from leoetlino/less-sleep
DiscordHandler: Don't delay shutdown by up to 2s
This commit is contained in:
commit
dd3b678451
|
@ -6,6 +6,7 @@
|
||||||
|
|
||||||
#include "DolphinQt/DiscordHandler.h"
|
#include "DolphinQt/DiscordHandler.h"
|
||||||
|
|
||||||
|
#include <chrono>
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
|
@ -35,10 +36,12 @@ void DiscordHandler::Start()
|
||||||
|
|
||||||
void DiscordHandler::Stop()
|
void DiscordHandler::Stop()
|
||||||
{
|
{
|
||||||
m_stop_requested.Set(true);
|
if (!m_thread.joinable())
|
||||||
|
return;
|
||||||
|
|
||||||
if (m_thread.joinable())
|
m_stop_requested.Set(true);
|
||||||
m_thread.join();
|
m_wakeup_event.Set();
|
||||||
|
m_thread.join();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiscordHandler::DiscordJoinRequest(const char* id, const std::string& discord_tag,
|
void DiscordHandler::DiscordJoinRequest(const char* id, const std::string& discord_tag,
|
||||||
|
@ -68,8 +71,7 @@ void DiscordHandler::Run()
|
||||||
{
|
{
|
||||||
while (!m_stop_requested.IsSet())
|
while (!m_stop_requested.IsSet())
|
||||||
{
|
{
|
||||||
if (m_thread.joinable())
|
Discord::CallPendingCallbacks();
|
||||||
Discord::CallPendingCallbacks();
|
|
||||||
|
|
||||||
// close and remove dead requests
|
// close and remove dead requests
|
||||||
{
|
{
|
||||||
|
@ -91,7 +93,7 @@ void DiscordHandler::Run()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Common::SleepCurrentThread(1000 * 2);
|
m_wakeup_event.WaitFor(std::chrono::seconds{2});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
|
||||||
|
#include "Common/Event.h"
|
||||||
#include "Common/Flag.h"
|
#include "Common/Flag.h"
|
||||||
|
|
||||||
#include "UICommon/DiscordPresence.h"
|
#include "UICommon/DiscordPresence.h"
|
||||||
|
@ -42,6 +43,7 @@ private:
|
||||||
void Run();
|
void Run();
|
||||||
QWidget* m_parent;
|
QWidget* m_parent;
|
||||||
Common::Flag m_stop_requested;
|
Common::Flag m_stop_requested;
|
||||||
|
Common::Event m_wakeup_event;
|
||||||
std::thread m_thread;
|
std::thread m_thread;
|
||||||
std::list<DiscordJoinRequestDialog> m_request_dialogs;
|
std::list<DiscordJoinRequestDialog> m_request_dialogs;
|
||||||
std::mutex m_request_dialogs_mutex;
|
std::mutex m_request_dialogs_mutex;
|
||||||
|
|
Loading…
Reference in New Issue