diff --git a/main.cpp b/main.cpp index ca4be50..4ff5749 100644 --- a/main.cpp +++ b/main.cpp @@ -55,10 +55,13 @@ void *thread_task_increment(const struct thread_data &thread) { // mutex { - // tell the thread manager we want the mutex + // wait for permission to ask for the mutex + while (!*thread.manager_took_mutex) + ; + // say we want the 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