If I set 3 threads to wait for a mutex to be release, do they form a queue based on the order they requested it in or is it undefined behaviour (i.e. we don\'t know which on
Yes, only one thread will be wake up and lock mutex. But order is undefined.