thrd_sleep
|
Определено в заголовочном файле
<threads.h>
|
||
|
int
thrd_sleep
(
const
struct
timespec
*
duration,
struct timespec * remaining ) ; |
(начиная с C11) | |
Блокирует выполнение текущего потока
как минимум
до тех пор, пока
TIME_UTC
-ориентированный интервал времени, на который указывает
duration
, не истечёт.
Сон может быть прерван досрочно, если получен
signal
, который не игнорируется. В таком случае, если
remaining
не является
NULL
, оставшееся время сохраняется в объект, на который указывает
remaining
.
Содержание |
Параметры
| duration | - | указатель на длительность ожидания |
| remaining | - | указатель на объект для сохранения оставшегося времени при прерывании. Может быть NULL , в этом случае игнорируется |
Возвращаемое значение
0 при успешном завершении сна, - 1 если произошел сигнал, другое отрицательное значение при возникновении ошибки.
Примечания
duration
и
remaining
могут указывать на один и тот же объект, что упрощает повторный запуск функции после сигнала.
Фактическое время сна может быть больше запрошенного, поскольку оно округляется до гранулярности таймера, а также из-за накладных расходов на планирование и переключение контекста.
Эквивалентом этой функции в POSIX является
nanosleep
.
Пример
Вывод:
Time: Mon Feb 2 16:18:41 2015 Time: Mon Feb 2 16:18:42 2015
Ссылки
- Стандарт C17 (ISO/IEC 9899:2018):
-
- 7.26.5.7 Функция thrd_sleep (стр: 281)
- Стандарт C11 (ISO/IEC 9899:2011):
-
- 7.26.5.7 Функция thrd_sleep (стр: 385)
Смотрите также
|
(C11)
|
освобождает текущий квант времени
(функция) |
|
C++ documentation
для
sleep_for
|
|