From: Mark Kettenis Date: Tue, 22 Aug 2000 19:31:27 +0000 (+0000) Subject: * hurd/hurdsig.c: Rearrange headers a bit. (_hurdsig_init): Block until _hurd_msgport... X-Git-Tag: upstream/2.30~24761 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=64659255c7e89040524a08835bec5fc7e1fdc3da;p=external%2Fglibc.git * hurd/hurdsig.c: Rearrange headers a bit. (_hurdsig_init): Block until _hurd_msgport_thread is initialized when cthreads is being used. 2000-08-22 Mark Kettenis * hurd/hurdsig.c: Rearrange headers a bit. (_hurdsig_init): Block until _hurd_msgport_thread is initialized when cthreads is being used. --- diff --git a/ChangeLog b/ChangeLog index 5521179..310c6b6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2000-08-22 Mark Kettenis + + * hurd/hurdsig.c: Rearrange headers a bit. + (_hurdsig_init): Block until _hurd_msgport_thread is initialized + when cthreads is being used. + 2000-08-22 Ulrich Drepper * elf/Makefile (distribute): Add dl-osinfo.h. diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c index 47f5fbf..80f915b 100644 --- a/hurd/hurdsig.c +++ b/hurd/hurdsig.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,92,93,94,95,96,97,98,99 Free Software Foundation, Inc. +/* Copyright (C) 1991,92,93,94,95,96,97,98,99,2000 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,13 +16,18 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include #include -#include -#include -#include /* For `struct mutex'. */ +#include #include + +#include /* For `struct mutex'. */ +#include +#include + +#include #include +#include + #include "hurdfault.h" #include "hurdmalloc.h" /* XXX */ @@ -1267,6 +1272,15 @@ _hurdsig_init (const int *intarray, size_t intarraysize) #pragma weak cthread_fork #pragma weak cthread_detach cthread_detach (cthread_fork ((cthread_fn_t) &_hurd_msgport_receive, 0)); + + /* XXX We need the thread port for the signal thread further on + in this thread (see hurdfault.c:_hurdsigfault_init). + Therefore we block until _hurd_msgport_thread is initialized + by the newly created thread. This really shouldn't be + necessary; we should be able to fetch the thread port for a + cthread from here. */ + while (_hurd_msgport_thread == 0) + __swtch_pri (0); } /* Receive exceptions on the signal port. */