From: Mark Wooding Date: Wed, 20 Sep 2006 15:20:23 +0000 (+0100) Subject: noise: Fix freewheel generator's use of setitimer(2). X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/commitdiff_plain/ff98dc94cb5d9498cd92edd6b734ec863d763852?ds=sidebyside;hp=71080a1b7e1bb95a65007aa2263562e43a477d32 noise: Fix freewheel generator's use of setitimer(2). If the old timer was turned off, don't accidentally turn it on. While on some Linux versions, this seems harmless enough, on others it causes spurious SIGALRM signals to be sent to the process, which is terribly unhelpful. --- diff --git a/noise.c b/noise.c index 9088930..c122506 100644 --- a/noise.c +++ b/noise.c @@ -390,7 +390,8 @@ int noise_freewheel(rand_pool *r) done: signal(SIGALRM, sigal); - TV_SUB(&oitv.it_value, &oitv.it_value, &itv.it_value); + if (oitv.it_value.tv_sec || oitv.it_value.tv_usec) + TV_SUB(&oitv.it_value, &oitv.it_value, &itv.it_value); setitimer(ITIMER_REAL, &oitv, 0); return (rc); }