This routine locks the specified mutex mutex. A deadlock can
result if the owner of a mutex calls this routine in an attempt
to lock the same mutex a second time. (The Threads Library may
not detect or report the deadlock.)
In a threaded environment, the thread that has locked a mutex
becomes its current owner and remains the owner until the same
thread has unlocked it. This routine returns with the mutex
in the locked state and with the current thread as the mutex's
current owner.