_sleepon_wait()

Ожидать на ждущей блокировке

Прототип:

#include <pthread.h>
int _sleepon_wait( sleepon_t *l,
const volatile void *addr,
uint64_t nsec );

Аргументы:

l
Указатель на sleepon_t, созданный вызовом _sleepon_init().
addr
Дескриптор, ожидающий потоки. Значение addr обычно представляет собой структуру, которая управляет ресурсами.
nsec
Ноль или время в наносекундах, необходимое для ожидания пробуждения потока. Если этот тайм-аут наступает, возвращается ETIMEDOUT.

Библиотека:

libc

Описание:

Функциональные блоки _sleepon_wait() на sleepon l используют ключ addr, пока не проснутся _sleepon_signal() или _sleepon_broadcast().

Вызывающий поток должен сначала заблокировать sleepon, вызвав _sleepon_lock().

Когда функция возвращает поток, должена быть снята блокировка, вызовом _sleepon_unlock().

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

0
Успешное завершение.
≠0
Возникла ошибка. Код ошибки записан в errno.

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

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

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

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

_sleepon_broadcast(), _sleepon_lock(), _sleepon_unlock(), _sleepon_signal()




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