| 429 | |
| 430 | #ifndef _WIN32 |
| 431 | void ContextImpl::UnlockAfterFork(FEXCore::Core::InternalThreadState* LiveThread, bool Child) { |
| 432 | Allocator::UnlockAfterFork(LiveThread, Child); |
| 433 | |
| 434 | Profiler::PostForkAction(Child); |
| 435 | if (Child) { |
| 436 | CodeInvalidationMutex.StealAndDropActiveLocks(); |
| 437 | if (Config.StrictInProcessSplitLocks) { |
| 438 | StrictSplitLockMutex = 0; |
| 439 | } |
| 440 | } else { |
| 441 | CodeInvalidationMutex.unlock(); |
| 442 | if (Config.StrictInProcessSplitLocks) { |
| 443 | FEXCore::Utils::SpinWaitLock::unlock(&StrictSplitLockMutex); |
| 444 | } |
| 445 | return; |
| 446 | } |
| 447 | } |
| 448 | |
| 449 | void ContextImpl::LockBeforeFork(FEXCore::Core::InternalThreadState* Thread) { |
| 450 | CodeInvalidationMutex.lock(); |
nothing calls this directly
no test coverage detected