diff --git a/Utilities/JITASM.cpp b/Utilities/JITASM.cpp index aebfbcd272..b1d227fc15 100644 --- a/Utilities/JITASM.cpp +++ b/Utilities/JITASM.cpp @@ -185,8 +185,13 @@ static u8* add_jit_memory(usz size, usz align) if (olda != newa) [[unlikely]] { #ifndef CAN_OVERCOMMIT - // Commit more memory - utils::memory_commit(pointer + olda, newa - olda, Prot); + // Commit more memory. + // NOTE: Calling memory commit in parallel on the same addresses can throw a permission error. + { + static std::mutex mcommit_lock; + std::lock_guard lock(mcommit_lock); + utils::memory_commit(pointer + olda, newa - olda, Prot); + } #endif // Acknowledge committed memory Ctr.atomic_op([&](u64& ctr)