pthread_mutex_unlock()

Разблокировать мьютекс

Прототип:

#include <pthread.h>
int pthread_mutex_unlock( pthread_mutex_t *mutex );

Аргументы:

mutex
Указатель на объект pthread_mutex_t, который требуется разблокировать.

Библиотека:

libc

Описание:

Функция pthread_mutex_unlock() разблокирует мьютекс mutex. Мьютекс должен принадлежать вызывающему потоку. Если в мьютексе есть заблокированные потоки, ожидающий поток с наивысшим приоритетом разблокируется и становится следующим владельцем мьютекса.

Если приоритет потока был повышен, когда поток с более высоким приоритетом попытался заблокировать мьютекс, приоритет вызывающего потока снова корректируется, когда он разблокирует мьютекс; его новый приоритет является наибольшим из значений его собственного приоритета и приоритетов тех потоков, которые он все еще блокирует прямо или косвенно.

Если mutex был заблокирован более одного раза, он должен быть разблокирован столько же раз, прежде чем следующий поток получит владение мьютексом. Это работает только для рекурсивных мьютексов.

Возвращаемое значение:

EOK
Успешное завершение.
EINVAL
Некорректный мьютекс mutex.
EPERM
Текущий поток не владеет мьютексом mutex.

Классификация:

POSIX 1003.1 Threads

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

pthread_mutex_lock(), pthread_mutex_timedlock(), pthread_mutex_trylock(), pthread_mutexattr_settype(), SyncMutexUnlock()




Предыдущий раздел: Описание API системной библиотеки