pthread_mutex_lock() returns zero after completing successfully. Any other returned value indicates that an error occurred. When any of the following conditions occur, the function fails and returns the corresponding value.
The mutex could not be acquired because the maximum number of recursive locks for mutex has been exceeded.