Formerly ../hurd/hurdpid.c.~7~
authorroland <roland>
Wed, 23 Jun 1993 21:48:55 +0000 (21:48 +0000)
committerroland <roland>
Wed, 23 Jun 1993 21:48:55 +0000 (21:48 +0000)
hurd/hurdpid.c

index 12aaf8d..f237029 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992, 1993 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
@@ -18,6 +18,7 @@ Cambridge, MA 02139, USA.  */
 
 #include <hurd.h>
 
+struct mutex _hurd_pid_lock;
 pid_t _hurd_pid, _hurd_ppid, _hurd_pgrp;
 int _hurd_orphaned;
 
@@ -25,8 +26,9 @@ static void
 init_pids (void)
 {
   int dealloc;
-  process_t proc = _hurd_port_get (&_hurd_proc, &dealloc);
+  process_t proc = _hurd_port_get (&_hurd_ports[INIT_PORT_PROC], &dealloc);
 
+  __mutex_init (&_hurd_pid_lock);
   __proc_getpids (proc, &_hurd_pid, &_hurd_ppid, &_hurd_orphaned);
   __proc_getpgrp (proc, _hurd_pid, &_hurd_pgrp);
 
@@ -39,8 +41,10 @@ error_t
 __proc_newids (sigthread_t me,
               pid_t ppid, pid_t pgrp, int orphaned)
 {
+  __mutex_lock (&_hurd_pid_lock);
   _hurd_ppid = ppid;
   _hurd_pgrp = pgrp;
   _hurd_orphaned = orphaned;
+  __mutex_unlock (&_hurd_pid_lock);
   return POSIX_SUCCESS;
 }