guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Need to block SIGCHLD in libgc and guile internal threads


From: Doug Evans
Subject: Re: Need to block SIGCHLD in libgc and guile internal threads
Date: Sat, 30 Aug 2014 10:40:06 -0700

On Fri, Aug 29, 2014 at 10:36 AM,  <address@hidden> wrote:
> On master, where we now require gc-7.2 or later, I guess we should be
> able to simplify this and block all signals.
>
> However, it's not clear how to backport this to stable-2.0, which does
> not even have a finalization thread, and yet gdb bug 17247 occurs with
> Guile 2.0.11.  Any idea how to prevent the problem on stable-2.0?

For gdb my plan is to block SIGCHLD before initializing guile and
unblock it afterwards.
That'll work regardless of guile version (assuming no new internal
guile threads get created afterwards).
For stable-2.0 you could do a similar thing I guess: block every
signal not expected before
initializing libgc and undo that afterwards.
[taking care to not block signals libgc uses internally I guess,
e.g. SIGPWR, SIGXCPU. I'm not sure if libgc checks and fails
to initialize or unblocks them]
[and, for completeness sake, we're only talking about asynchronous
signals ... not SIGSEGV, etc.]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]