mirror of
https://github.com/FEX-Emu/FEX.git
synced 2025-02-05 13:57:24 +00:00
Threading: Workaround exit_group bug
This commit is contained in:
parent
3a6fd00154
commit
9b360e66dc
@ -412,7 +412,11 @@ namespace FEXCore::Context {
|
||||
CurrentThread = Thread;
|
||||
continue;
|
||||
}
|
||||
StopThread(Thread);
|
||||
if (Thread->State.RunningEvents.Running.load()) {
|
||||
StopThread(Thread);
|
||||
} else {
|
||||
LogMan::Msg::D("Skipping thread %p: Already stopped", Thread);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -423,7 +427,7 @@ namespace FEXCore::Context {
|
||||
}
|
||||
|
||||
void Context::StopThread(FEXCore::Core::InternalThreadState *Thread) {
|
||||
if (Thread->State.RunningEvents.Running.load()) {
|
||||
if (Thread->State.RunningEvents.Running.exchange(false)) {
|
||||
Thread->SignalReason.store(FEXCore::Core::SignalEvent::SIGNALEVENT_STOP);
|
||||
tgkill(Thread->State.ThreadManager.PID, Thread->State.ThreadManager.TID, SignalDelegator::SIGNAL_FOR_PAUSE);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user