diff --git a/PTM/mem_ctx/mem_ctx.cpp b/PTM/mem_ctx/mem_ctx.cpp index 23889e0..162fde2 100644 --- a/PTM/mem_ctx/mem_ctx.cpp +++ b/PTM/mem_ctx/mem_ctx.cpp @@ -163,11 +163,9 @@ namespace nasa } __except (EXCEPTION_EXECUTE_HANDLER) { + // loop until the TLB has flushed... while (true) { - while (!SwitchToThread()) - continue; - __try { *(std::uint8_t*)new_addr.value = *(std::uint8_t*)new_addr.value; @@ -175,6 +173,9 @@ namespace nasa } __except(EXCEPTION_EXECUTE_HANDLER) {} + + while (!SwitchToThread()) + continue; } } return {};