On Thu 05 Jul 2018 14:27, l...@gnu.org (Ludovic Courtès) writes: > Hello, > > Andy Wingo <wi...@igalia.com> skribis: > >> The signal thread is a possibility though in that case you'd get a >> warning; the signal-handling thread appears in scm_all_threads. Do you >> see a warning? If you do, that is a problem :) > > I don’t see a warning. > > But as a Guile user, I shouldn’t see a warning just because there’s a > signal thread anyway; it’s not a thread I spawned myself.
I understand but it's how it works. If we want to change this, probably we need a similar interface as we have with finalization. > The weird thing is that the signal thread always exists, and it’s > surprising IMO that it shows up in ‘scm_all_threads’ because it’s not a > “user thread”. The other surprise is that the warning isn’t triggered: > > $ guile > GNU Guile 2.2.4 > Copyright (C) 1995-2017 Free Software Foundation, Inc. > > Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'. > This program is free software, and you are welcome to redistribute it > under certain conditions; type `,show c' for details. > > Enter `,help' for help. > scheme@(guile-user)> (all-threads) > $1 = (#<thread 140488743438080 (1b06c40)> #<thread 140488815434624 (1b06e00)>) > scheme@(guile-user)> (when (zero? (primitive-fork)) (primitive-_exit 0)) > ;; no warning Are you certain that this is the signal-handling thread and not the finalizer thread? I suspect it is the finalizer thread, and that it gets properly shut down before the fork. Regarding seeing the warning: do you do make some other binding for the default warning port in Guix? Andy