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

In addition to the previous commit, this commit makes threads 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 1343caaee6

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