mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-12 17:58:37 +12:00
gsframe: Break waiting is emulator is stopped suddenly
- Keeps the queue from hanging the GUI
This commit is contained in:
parent
ce2b790d8f
commit
395b4bfa45
1 changed files with 3 additions and 3 deletions
|
@ -246,10 +246,10 @@ bool gs_frame::event(QEvent* ev)
|
||||||
bool gs_frame::nativeEvent(const QByteArray &eventType, void *message, long *result)
|
bool gs_frame::nativeEvent(const QByteArray &eventType, void *message, long *result)
|
||||||
{
|
{
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
if (wm_event_queue_enabled.load(std::memory_order_consume))
|
if (wm_event_queue_enabled.load(std::memory_order_consume) && !Emu.IsStopped())
|
||||||
{
|
{
|
||||||
//Wait for consumer to clear notification pending flag
|
//Wait for consumer to clear notification pending flag
|
||||||
while (wm_event_raised.load(std::memory_order_consume));
|
while (wm_event_raised.load(std::memory_order_consume) && !Emu.IsStopped());
|
||||||
|
|
||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> lock(wm_event_lock);
|
std::lock_guard<std::mutex> lock(wm_event_lock);
|
||||||
|
@ -337,7 +337,7 @@ bool gs_frame::nativeEvent(const QByteArray &eventType, void *message, long *res
|
||||||
}
|
}
|
||||||
|
|
||||||
//Do not enter DefWndProc until the consumer has consumed the message
|
//Do not enter DefWndProc until the consumer has consumed the message
|
||||||
while (wm_event_raised.load(std::memory_order_consume));
|
while (wm_event_raised.load(std::memory_order_consume) && !Emu.IsStopped());
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue