Разблокировать любые потоки, которые ожидают на мьютексе
#include <pthread.h>int pthread_mutex_wakeup_np( pthread_mutex_t *mutex,pid_t pid,pthread_t tid );
pthread_mutex_t
, для которого требуется "разбудить" все ожидающие потоки.0
, чтобы разблокировать определенный поток в текущем процессе (если tid не равен 0
), либо все потоки для всех процессов (если tid равен 0
).0
, чтобы разблокировать все потоки.libc
Функция pthread_mutex_wakeup_np() разблокирует любые потоки, ожидающие на указанном мьютексе, при условии, что PTHREAD_WAKEUP_ENABLE
установлен в атрибутах мьютекса (см. pthread_mutexattr_setwakeup_np()). Постфикс "np" в именах этих функций означает "не-POSIX".
В ожидающих потоках вызов pthread_mutex_lock() возвратит код ошибки EINTR
, что не является POSIX-совместимым поведением.
PTHREAD_WAKEUP_ENABLE
не был установлен для мьютекса. ЗОСРВ «Нейтрино»
pthread_mutex_lock(), pthread_mutexattr_getwakeup_np(), pthread_mutexattr_setwakeup_np()
Предыдущий раздел: Описание API системной библиотеки