Subject: bug#70144: closed (Re: bug#70144: system* affects signal handlers)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 06 May 2024 10:02:01 +0000

Your bug report

#70144: system* affects signal handlers

which was filed against the guile package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
70144: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=70144
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#70144: system* affects signal handlers
From: Ludovic Courtès <[email-masked]>
To: Josselin Poiret <[email-masked]>
Cc: Mikael Djurfeldt <[email-masked]>, [email-masked], Christopher Baines <[email-masked]>
Date: Mon, 06 May 2024 12:00:34 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

Josselin Poiret <[email-masked]> skribis:

> Yes, I believe this is all taken care of by our use of posix_spawn
> (which was the point in the first place :) ).

Yup!  I pushed the fix as 4ae33f76d6b33ea0bedfa36050d44c88d08c2823.

Thanks,
Ludo’.

Subject: system* affects signal handlers
From: Christopher Baines <[email-masked]>
To: [email-masked]
Date: Tue, 02 Apr 2024 15:22:57 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

I've encountered a situation where signal handlers don't seem to
run. With the following program, sending it SIGINT won't trigger the
handler, however if you remove the system* call, then the handler will
run.

  (use-modules (ice-9 threads))

  (call-with-new-thread
   (lambda ()
     ;; Remove the following system* call to fix the handler
     (system* "echo" "foo")))

  (sigaction SIGINT
    (lambda (sig)
      (peek "SIGINT handler")
      (exit 1)))

  (for-each
   (lambda _
     (sleep 1))
   (iota 30))

  (display "normal exit\n")