[wiki] [sites] [slstatus][patch][signals] fix nanosleep for negative intervals || sewn

From: <git_AT_suckless.org>
Date: Wed, 05 Feb 2025 14:03:10 +0100

commit 5388a74ae0872ae2920effdb41eef96aac6a25df
Author: sewn <sewn_AT_disroot.org>
Date: Wed Feb 5 16:02:54 2025 +0300

    [slstatus][patch][signals] fix nanosleep for negative intervals
    
    fix pointed out by bakkeby in a reddit thread.

diff --git a/tools.suckless.org/slstatus/patches/signals/slstatus-signals-1.0.patch b/tools.suckless.org/slstatus/patches/signals/slstatus-signals-1.0.patch
index 64523419..4f1f3cd8 100644
--- a/tools.suckless.org/slstatus/patches/signals/slstatus-signals-1.0.patch
+++ b/tools.suckless.org/slstatus/patches/signals/slstatus-signals-1.0.patch
_AT_@ -1,12 +1,12 @@
-From 8eaf9e1d101d93c784b12902eb71d5b2985a6985 Mon Sep 17 00:00:00 2001
+From fabec4fb9f3cb749f33dc97188106c73a20ca7db Mon Sep 17 00:00:00 2001
 From: sewn <sewn_AT_disroot.org>
-Date: Sat, 12 Oct 2024 20:45:16 +0300
+Date: Wed, 5 Feb 2025 16:00:52 +0300
 Subject: [PATCH] implement signals & turns
 
 ---
  config.def.h | 11 ++++--
- slstatus.c | 108 ++++++++++++++++++++++++++++++++-------------------
- 2 files changed, 75 insertions(+), 44 deletions(-)
+ slstatus.c | 107 ++++++++++++++++++++++++++++++++-------------------
+ 2 files changed, 74 insertions(+), 44 deletions(-)
 
 diff --git a/config.def.h b/config.def.h
 index d805331..a89127b 100644
_AT_@ -36,7 +36,7 @@ index d805331..a89127b 100644
 +/* maximum output string length */
 +#define MAXLEN CMDLEN * LEN(args)
 diff --git a/slstatus.c b/slstatus.c
-index fd31313..d5efd35 100644
+index fd31313..b3dbae8 100644
 --- a/slstatus.c
 +++ b/slstatus.c
 _AT_@ -15,20 +15,19 @@ struct arg {
_AT_@ -178,7 +178,7 @@ index fd31313..d5efd35 100644
  
                  if (!done) {
                          if (clock_gettime(CLOCK_MONOTONIC, &current) < 0)
-_AT_@ -117,10 +140,15 @@ main(int argc, char *argv[])
+_AT_@ -117,10 +140,14 @@ main(int argc, char *argv[])
                          intspec.tv_nsec = (interval % 1000) * 1E6;
                          difftimespec(&wait, &intspec, &diff);
  
_AT_@ -186,18 +186,17 @@ index fd31313..d5efd35 100644
 - nanosleep(&wait, NULL) < 0 &&
 - errno != EINTR)
 - die("nanosleep:");
-+ do {
-+ if (errno == EINTR) {
-+ printstatus(0);
-+ errno = upsigno = 0;
-+ }
-+ ret = nanosleep(&wait, &wait);
-+ } while (wait.tv_sec >= 0 && ret < 0 && !done);
++ while(wait.tv_sec >= 0 &&
++ (ret = nanosleep(&wait, &wait)) < 0 &&
++ errno == EINTR && !done) {
++ printstatus(0);
++ errno = upsigno = 0;
++ }
 + if (ret < 0 && errno != EINTR)
 + die("nanosleep:");
                  }
          } while (!done);
  
 --
-2.46.2
+2.47.1
 
Received on Wed Feb 05 2025 - 14:03:10 CET

This archive was generated by hypermail 2.3.0 : Wed Feb 05 2025 - 14:12:52 CET