On Tue, Jul 14, 2020 at 02:45:14PM +0200, Mart Lubbers wrote:
> Dear all,
> I've submitted this patch before but maybe I did something wrong (it was
> before
> the confirmation mail of the subscription). If there is anything else off with
> this email/patch, please let me know.
> Best,
>
> Original email:
>
> At some point one might want to force a refresh for example after
> checking email or changing the volume. Sending a SIGUSR1 achieves this
> now
>
> ---
> slstatus.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/slstatus.c b/slstatus.c
> index 96fa5b6..499cd30 100644
> --- a/slstatus.c
> +++ b/slstatus.c
> @@ -26,9 +26,8 @@ static Display *dpy;
> static void
> terminate(const int signo)
> {
> - (void)signo;
> -
> - done = 1;
> + if (signo != SIGUSR1)
> + done = 1;
> }
>
> static void
> @@ -72,6 +71,7 @@ main(int argc, char *argv[])
> act.sa_handler = terminate;
> sigaction(SIGINT, &act, NULL);
> sigaction(SIGTERM, &act, NULL);
> + sigaction(SIGUSR1, &act, NULL);
>
> if (!sflag && !(dpy = XOpenDisplay(NULL))) {
> die("XOpenDisplay: Failed to open display");
> --
> 2.20.1Hi, It sounds useful to me. Handling SIGUSR1 probably increases the change of some race-condition though (SIGINT and SIGTERM ends the program so it doesn't matter much). Maybe setting sigaction.sa_flags to SA_RESTART helps a bit to atleast avoid EINTR in some calls (like stdio file write/reads)? And a nitpick (probably does not matter in practise) but maybe done should be of the type volatile sig_atomic_t? -- Kind regards, Hiltjo
signature.asc
Description: PGP signature
