summaryrefslogtreecommitdiff
path: root/lib/libpthread/thread/thr_fork.c
diff options
context:
space:
mode:
authorJohn Birrell <jb@FreeBSD.org>1998-04-29 09:59:34 +0000
committerJohn Birrell <jb@FreeBSD.org>1998-04-29 09:59:34 +0000
commit4a027d50c7f3f30178a89b3159ba9e4b44f06885 (patch)
treeb7a4ea836e97e11d436f9a6657ea6a9ec8036c33 /lib/libpthread/thread/thr_fork.c
parentccf47cfcedf9f3db1780bc3b52ca0adb4480d3f6 (diff)
Notes
Diffstat (limited to 'lib/libpthread/thread/thr_fork.c')
-rw-r--r--lib/libpthread/thread/thr_fork.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/lib/libpthread/thread/thr_fork.c b/lib/libpthread/thread/thr_fork.c
index 29d60903a500..25d6703545fc 100644
--- a/lib/libpthread/thread/thr_fork.c
+++ b/lib/libpthread/thread/thr_fork.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995 John Birrell <jb@cimlogic.com.au>.
+ * Copyright (c) 1995-1998 John Birrell <jb@cimlogic.com.au>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -47,8 +47,8 @@ fork(void)
pthread_t pthread;
pthread_t pthread_next;
- /* Block signals to avoid being interrupted at a bad time: */
- _thread_kern_sig_block(&status);
+ /* Lock the thread list: */
+ _lock_thread_list();
/* Fork a new process: */
if ((ret = _thread_sys_fork()) <= 0) {
@@ -59,12 +59,12 @@ fork(void)
_thread_sys_close(_thread_kern_pipe[1]);
/* Reset signals pending for the running thread: */
- memset(_thread_run->sigpend, 0, sizeof(_thread_run->sigpend));
+ _thread_run->sigpend = 0;
/*
* Create a pipe that is written to by the signal handler to
* prevent signals being missed in calls to
- * _thread_sys_select:
+ * _select:
*/
if (_thread_sys_pipe(_thread_kern_pipe) != 0) {
/* Cannot create pipe, so abort: */
@@ -122,8 +122,8 @@ fork(void)
}
}
- /* Unblock signals: */
- _thread_kern_sig_unblock(status);
+ /* Unock the thread list: */
+ _unlock_thread_list();
/* Return the process ID: */
return (ret);