cellMic: Fix potential overflow

This commit is contained in:
Elad Ashkenazi 2024-07-27 09:52:12 +03:00
parent d451c0867c
commit 700334753d

View file

@ -73,14 +73,13 @@ void mic_context::operator()()
// Timestep in microseconds // Timestep in microseconds
constexpr u64 TIMESTEP = 256ull * 1'000'000ull / 48000ull; constexpr u64 TIMESTEP = 256ull * 1'000'000ull / 48000ull;
u64 timeout = 0; u64 timeout = 0;
u32 oldvalue = 0;
while (thread_ctrl::state() != thread_state::aborting) while (thread_ctrl::state() != thread_state::aborting)
{ {
if (timeout != 0) if (timeout != 0)
{ {
thread_ctrl::wait_on(wakey, oldvalue, timeout); thread_ctrl::wait_on(wakey, 0, timeout);
oldvalue = wakey; wakey.store(0);
} }
std::lock_guard lock(mutex); std::lock_guard lock(mutex);
@ -124,7 +123,7 @@ void mic_context::operator()()
void mic_context::wake_up() void mic_context::wake_up()
{ {
wakey++; wakey.store(1);
wakey.notify_one(); wakey.notify_one();
} }