Fix vm::reservation_update

This commit is contained in:
Elad Ashkenazi 2024-08-13 09:07:17 +03:00
parent 3fa8994f4e
commit 6535d461be

View file

@ -101,6 +101,13 @@ namespace vm
u64 old = -1; u64 old = -1;
const auto cpu = get_current_cpu_thread(); const auto cpu = get_current_cpu_thread();
const bool had_wait = cpu && cpu->state & cpu_flag::wait;
if (cpu && !had_wait)
{
cpu->state += cpu_flag::wait;
}
while (true) while (true)
{ {
const auto [ok, rtime] = try_reservation_update(addr); const auto [ok, rtime] = try_reservation_update(addr);
@ -112,15 +119,15 @@ namespace vm
reservation_notifier(addr).notify_all(); reservation_notifier(addr).notify_all();
} }
if (cpu && !had_wait && cpu->test_stopped())
{
//
}
return; return;
} }
old = rtime; old = rtime;
if (cpu && cpu->test_stopped())
{
return;
}
} }
} }