From 152b3668f70d3b7df536e554bb12ab7c5a857ac5 Mon Sep 17 00:00:00 2001 From: Ashish Kumar Yadav Date: Tue, 29 Dec 2020 13:56:08 +0530 Subject: [PATCH] Bug fix and improvement - nanosleep --- dwmblocks.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/dwmblocks.c b/dwmblocks.c index f18a2af..29cf63e 100644 --- a/dwmblocks.c +++ b/dwmblocks.c @@ -203,19 +203,23 @@ statusloop() getcmd(block, NILL); setroot(); sigprocmask(SIG_UNBLOCK, &blocksigmask, NULL); + t.tv_sec = INTERVALs, t.tv_nsec = INTERVALn; + while (nanosleep(&t, &t) == -1) + if (errno != EINTR) { + perror("statusloop - nanosleep"); + exit(1); + } + i = 1; /* main loop */ - for (i = 1;; t.tv_sec = INTERVALs, t.tv_nsec = INTERVALn, i += 1) { - while (nanosleep(&t, &t) == -1) - if (errno != EINTR) { - perror("statusloop - nanosleep"); - exit(1); - } + for (;; i++) { sigprocmask(SIG_BLOCK, &blocksigmask, NULL); for (Block *block = blocks; block->pathu; block++) if (block->interval > 0 && i % block->interval == 0) getcmd(block, NILL); setroot(); sigprocmask(SIG_UNBLOCK, &blocksigmask, NULL); + t.tv_sec = INTERVALs, t.tv_nsec = INTERVALn; + while (nanosleep(&t, &t) == -1); } }