pthread_sleepon_lock()

Заблокировать функции pthread_sleepon*()

Прототип:

#include <pthread.h>
int pthread_sleepon_lock( void );

Библиотека:

libc

Описание:

Функция pthread_sleepon_lock() вызывает pthread_mutex_lock() для мьютекса, связанного с блокировками вида pthread_sleepon_*(). Необходимо вызвать данную функцию перед проверкой условий, которые определяют, необходимо ли вызывать pthread_sleepon_wait(), pthread_sleepon_signal(), или pthread_sleepon_broadcast(). Данный мьютекс предотвращает изменение условий другими потоками в тот промежуток времени, когда производится их проверка и действия над ними.

Данная функция может быть реализована в виде простого макроса.

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

EOK
Успешное завершение.
EDEADLK
Вызывающий поток уже владеет управляющим мьютексом.
EAGAIN
При первом использовании pthread_sleepon_lock() все мьютексы ядра были заняты.

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

ЗОСРВ «Нейтрино»

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

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

pthread_mutex_lock(), pthread_sleepon_broadcast(), pthread_sleepon_signal(), pthread_sleepon_unlock(), pthread_sleepon_wait()




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