examples/ephiperfifo: turn off interval when setting timerfd

Reported-by: therealhirudo on github
Fixes #5485
Closes #5497
This commit is contained in:
kotoriのねこ 2020-06-01 10:51:34 -07:00 коммит произвёл Daniel Stenberg
Родитель 21ed48e8d9
Коммит 066b303231
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 5CC908FDB71E12C2
1 изменённых файлов: 3 добавлений и 3 удалений

Просмотреть файл

@ -146,7 +146,7 @@ static int multi_timer_cb(CURLM *multi, long timeout_ms, GlobalInfo *g)
fprintf(MSG_OUT, "multi_timer_cb: Setting timeout to %ld ms\n", timeout_ms);
if(timeout_ms > 0) {
its.it_interval.tv_sec = 1;
its.it_interval.tv_sec = 0;
its.it_interval.tv_nsec = 0;
its.it_value.tv_sec = timeout_ms / 1000;
its.it_value.tv_nsec = (timeout_ms % 1000) * 1000 * 1000;
@ -155,7 +155,7 @@ static int multi_timer_cb(CURLM *multi, long timeout_ms, GlobalInfo *g)
/* libcurl wants us to timeout now, however setting both fields of
* new_value.it_value to zero disarms the timer. The closest we can
* do is to schedule the timer to fire in 1 ns. */
its.it_interval.tv_sec = 1;
its.it_interval.tv_sec = 0;
its.it_interval.tv_nsec = 0;
its.it_value.tv_sec = 0;
its.it_value.tv_nsec = 1;
@ -488,7 +488,7 @@ int main(int argc, char **argv)
}
memset(&its, 0, sizeof(struct itimerspec));
its.it_interval.tv_sec = 1;
its.it_interval.tv_sec = 0;
its.it_value.tv_sec = 1;
timerfd_settime(g.tfd, 0, &its, NULL);