[Top][All Lists]

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

[PATCH 0/8] Hurd signal code improvements

From: Jeremie Koenig
Subject: [PATCH 0/8] Hurd signal code improvements
Date: Wed, 25 May 2011 17:59:26 +0200


This patch series has many improvements for the Hurd signal code in
glibc. I cc: libc-alpha for your information only, at this point I'm not
asking for them to be merged upstream yet.

The main goal of this series is to implement global signal dispositions
on Hurd, which is necessay for POSIX conformance of libpthread (see the
details in commit messages). In particular, libgcj relies on a correct
implementation in this regard, which causes "ant" (the "make" of the
Java world) to hang waiting for child processes to terminate.

Prior to implementing this, I refactored the code to make it somewhat
easier to follow, and fixed a few bugs I ran into.

Any kind of feedback would be great of course, but in particular I'm
wondering about:

  * Signal preemptors. What are they used for and should they be made
    global as well?

  * I'm not completely sure what spawni() is for, but it seems the child
    process it create inherits the parent's pending signals.
    Is this intended?

  * Symbol versions. I used GLIBC_2.13 for the new interfaces but I'm
    not completely sure what the policy is.

I'll be posting the related changes to Hurd's libpthread right after I
send this series. If you would like to test these patches, I have built
glibc and hurd (for libpthread) Debian packages with these changes,
which are available at the following repository:

  deb http://jk.fr.eu.org/debian experimental/

(The glibc package uses slightly different patches with regards to the
symbol versions. I'll build and upload a new version soon)

Acknowledgement: I started working on this a few months ago but I am
finishing it as a Google Summer of Code student for the GNU project, as
part of my proposal to improve Java support on Hurd [1]. I have assigned
copyright to the FSF for past and future changes to both glibc and hurd.

[1] See http://www.bddebian.com/~hurd-web/user/jkoenig/java.

Jeremie Koenig (8):
  _hurd_internal_post_signal: Split into more functions
  _hurd_internal_post_signal: Scope variables more restrictively
  _hurd_internal_post_signal: Split out inner functions
  Hurd signal cleanup: refactor check_pending_signals
  Hurd signals: reindent
  Hurd signals: make sigsuspend POSIX-conformant.
  Hurd signals: fix uninitialized value.
  Hurd signals: implement global signal dispositions

 Versions.def                    |    1 +
 hurd/Versions                   |    7 +
 hurd/hurd/signal.h              |   35 +++-
 hurd/hurdmsg.c                  |   12 +-
 hurd/hurdsig.c                  |  446 +++++++++++++++++++++++++--------------
 sysdeps/mach/hurd/fork.c        |   19 +-
 sysdeps/mach/hurd/sigaction.c   |   16 +-
 sysdeps/mach/hurd/sigpending.c  |    6 +-
 sysdeps/mach/hurd/sigprocmask.c |    8 +-
 sysdeps/mach/hurd/sigsuspend.c  |   15 +-
 sysdeps/mach/hurd/sigwait.c     |   11 +-
 sysdeps/mach/hurd/spawni.c      |   23 ++-
 12 files changed, 382 insertions(+), 217 deletions(-)

reply via email to

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