January 2020
Intermediate to advanced
454 pages
11h 25m
English
A recursive mutex increments the integer stored inside the mutex each time the same thread calls the lock() function without causing the lock() function to wait. For example, if the mutex is released (that is, the integer in the mutex is 0), when thread #1 calls the lock() function, the integer in the mutex is set to 1. Normally, if thread #1 calls the lock() function again, the lock() function would see that the integer is 1 and enter a wait state until the integer is set to 0. Instead, a recursive mutex will determine which thread is calling the lock() function, and, if the thread that acquired the mutex is the same thread calling the lock() function, the integer in the mutex is incremented again (now resulting in ...