From 64659255c7e89040524a08835bec5fc7e1fdc3da Mon Sep 17 00:00:00 2001 From: Mark Kettenis Date: Tue, 22 Aug 2000 19:31:27 +0000 Subject: * 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. --- hurd/hurdsig.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'hurd/hurdsig.c') 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. */ -- cgit v1.1