Функция pthread_mutex_lock() используется для запирания мьютекса. Если мьютекс уже закрыт, вызывающий поток блокируется и мьютекс ставится в очередь приоритетов. Когда происходит возврат из pthread_mutex_lock(), мьютекс запирается, а вызывающий поток становится его владельцем. pthread_mutex_lock() возвращает 0 - после успешного завершения - или другое значение, если произошла ошибка. Пример вызова:
pthread_mutex_t mp;
int ret;
ret = pthread_mutex_lock(&mp);
Мьютекс должен быть закрыт, а вызывающий поток должен быть владельцем, т. е. тем, кто запирал мьютекс. Пока любые другие потоки ждут доступа к мьютексу, поток в начале очереди не блокирован; pthread_mutex_unlock() возвращает 0 - после успешного завершения - или другое значение, если произошла ошибка. Пример вызова:
pthread_mutex_t mp;
int ret;
ret = pthread_mutex_unlock(&mp);