mutex(fix): prevent race condition (part 2)

In addition to the previous commit, this commit makes threads need to
wait for the thread manager to say it took the mutex from them before
they can ask for it again.
This commit is contained in:
PowerUser64 2024-11-19 15:08:22 -08:00
parent d9b9d82c79
commit e9b4f8e389

View file

@ -56,9 +56,10 @@ void *thread_task_increment(const struct thread_data &thread) {
{
// tell the thread manager we want the mutex
while (!*thread.manager_took_mutex)
(*thread.wants_mutex) = true;
// block until we have the mutex
while (!*thread.has_mutex && *thread.manager_took_mutex)
while (!*thread.has_mutex)
;
// enter the mutex