Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Doug Evans <xdje42@gmail.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH][PR guile/17247] Block SIGCHLD while initializing Guile
Date: Sun, 31 Aug 2014 19:36:00 -0000	[thread overview]
Message-ID: <834mwsh2nu.fsf@gnu.org> (raw)
In-Reply-To: <m31trwv5o1.fsf@sspiff.org>

> From: Doug Evans <xdje42@gmail.com>
> Date: Sun, 31 Aug 2014 12:07:58 -0700
> 
> Basically, current Guile (git) starts an internal thread
> (the "finalizer" thread), and libgc as of 7.4 now starts several
> marker threads by default (before 7.4.0 one needed to configure
> libgc with --enable-parallel-mark).
> 
> When other threads are running, and they haven't blocked SIGCHLD,
> then the kernel may send SIGCHLD to these threads, leaving gdb
> hung in the sigsuspend calls in linux-nat.c.

A heretic thought: is it at all a good idea to have Guile (and GC)
start threads when they run under GDB?  GDB is a single-threaded
program, so having it linked against libraries that start threads
whenever they like is IME a source of subtle problems (like this one)
and a lot of pain down the road.  Anything GDB does that affects the
global environment of the whole program (e.g., I/O redirection) will
also affect those threads, with who knows what consequences.

So maybe The Right Way of fixing these problems is configure Guile and
GC so that they never start any additional threads?


  reply	other threads:[~2014-08-31 19:36 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-31 19:08 Doug Evans
2014-08-31 19:36 ` Eli Zaretskii [this message]
2014-08-31 20:20   ` Doug Evans
2014-09-01  2:37     ` Eli Zaretskii
2014-09-01 10:11       ` Ludovic Courtès
2014-09-01 14:39         ` Eli Zaretskii
2014-09-01 16:18           ` Ludovic Courtès
2014-09-01 17:10             ` Eli Zaretskii
2014-09-01 22:04               ` Doug Evans
2014-09-02 15:25                 ` Eli Zaretskii
2014-09-05  8:27                   ` Doug Evans
2014-09-05  8:48                     ` Eli Zaretskii
2014-09-05 10:51                       ` Pedro Alves
2014-09-05 11:51                         ` Eli Zaretskii
2014-09-05 12:48                           ` Pedro Alves
2014-09-05 11:50                       ` Ludovic Courtès
2014-09-01 12:48     ` Gary Benson
2014-09-01 16:35       ` Doug Evans
2014-09-09  5:54 ` Doug Evans
2014-09-10  5:15   ` Doug Evans

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=834mwsh2nu.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=gdb-patches@sourceware.org \
    --cc=xdje42@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox