pthread_mutex_wakeup_np()

Разблокировать все потоки, которые не ожидают на мьютексе

Прототип:

#include <pthread.h>
int pthread_mutex_wakeup_np( pthread_mutex_t *mutex,
pid_t pid,
pthread_t tid );

Аргументы:

mutex
Указатель на объект pthread_mutex_t, для которого требуется "разбудить" все ожидающие потоки.
pid
Идентификатор конкретного процесса, поток или потоки которого требуется разблокировать, или 0, чтобы разблокировать определенный поток в текущем процессе (если tid не равен 0), или все потоки для всех процессов (если tid равен 0).
tid
Идентификатор потока в указанном процессе, который требуется разблокировать, или 0, чтобы разблокировать все потоки.

Библиотека:

libc

Описание:

Функция pthread_mutex_wakeup_np() разблокирует любые потоки, ожидающие в указанном мьютексе, при условии, что PTHREAD_WAKEUP_ENABLE установлен в атрибутах мьютекса (см. pthread_mutexattr_setwakeup_np()). Постфикс “np” в именах этих функций означает “не-POSIX.”

Вызов ожидающих потоков к pthread_mutex_lock() возвращает код ошибки EINTR, который не является кодом возврата POSIX для этой функции.

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

EOK
Успешное завершение.
EINVAL
Один из следующих:
ESRCH
Указанный процесс и поток не найдены.

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

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

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

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

pthread_mutex_lock(), pthread_mutexattr_getwakeup_np(), pthread_mutexattr_setwakeup_np()




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