| 894 | } |
| 895 | |
| 896 | void ContextImpl::MarkMemoryShared(FEXCore::Core::InternalThreadState* Thread) { |
| 897 | if (!Thread) { |
| 898 | return; |
| 899 | } |
| 900 | |
| 901 | if (!IsMemoryShared) { |
| 902 | IsMemoryShared = true; |
| 903 | UpdateAtomicTSOEmulationConfig(); |
| 904 | |
| 905 | if (Config.TSOAutoMigration) { |
| 906 | // Only the lookup cache is cleared here, so that old code can keep running until next compilation. |
| 907 | // This will leak previously compiled blocks until the CodeBuffer is cleared for some other reason. |
| 908 | Thread->LookupCache->ClearCache(); |
| 909 | } |
| 910 | } |
| 911 | } |
| 912 | |
| 913 | bool ContextImpl::ThreadRemoveCodeEntry(FEXCore::Core::InternalThreadState* Thread, uint64_t GuestRIP) { |
| 914 | LogMan::Throw::AFmt(static_cast<ContextImpl*>(Thread->CTX)->CodeInvalidationMutex.try_lock() == false, "CodeInvalidationMutex needs to " |
no test coverage detected