mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-20 11:11:24 +00:00
225721f00b
o Don't reinitialise the atfork() handler list in the child. We are meant to call the child handler, and on subsequent fork()s should call all three functions as normal. o Don't reinitialise the thread specific keyed data in the child after a fork. Applications may require this for context. o Reinitialise curthread->tlflags after removing ourselves from (and reinitialising) the various internal thread lists. o Reinitialise __malloc_lock in the child after fork() (to balance our explicitly taking the lock prior to the fork()). With these changes, it is possible to enable the NOTYET code in thr_kern.c to allow the use of non-async-safe functions after fork()ing from a threaded program. Reviewed by: Daniel Eischen <deischen@freebsd.org> [_malloc_lock reinitialisation has since been moved to avoid polluting the !NOTYET code] |
||
---|---|---|
.. | ||
Makefile.inc | ||
thr_accept.c | ||
thr_aio_suspend.c | ||
thr_atfork.c | ||
thr_attr_destroy.c | ||
thr_attr_get_np.c | ||
thr_attr_getdetachstate.c | ||
thr_attr_getguardsize.c | ||
thr_attr_getinheritsched.c | ||
thr_attr_getschedparam.c | ||
thr_attr_getschedpolicy.c | ||
thr_attr_getscope.c | ||
thr_attr_getstack.c | ||
thr_attr_getstackaddr.c | ||
thr_attr_getstacksize.c | ||
thr_attr_init.c | ||
thr_attr_setcreatesuspend_np.c | ||
thr_attr_setdetachstate.c | ||
thr_attr_setguardsize.c | ||
thr_attr_setinheritsched.c | ||
thr_attr_setschedparam.c | ||
thr_attr_setschedpolicy.c | ||
thr_attr_setscope.c | ||
thr_attr_setstack.c | ||
thr_attr_setstackaddr.c | ||
thr_attr_setstacksize.c | ||
thr_autoinit.c | ||
thr_barrier.c | ||
thr_barrierattr.c | ||
thr_cancel.c | ||
thr_clean.c | ||
thr_close.c | ||
thr_concurrency.c | ||
thr_cond.c | ||
thr_condattr_destroy.c | ||
thr_condattr_init.c | ||
thr_connect.c | ||
thr_creat.c | ||
thr_create.c | ||
thr_detach.c | ||
thr_equal.c | ||
thr_execve.c | ||
thr_exit.c | ||
thr_fcntl.c | ||
thr_find_thread.c | ||
thr_fork.c | ||
thr_fsync.c | ||
thr_getprio.c | ||
thr_getschedparam.c | ||
thr_info.c | ||
thr_init.c | ||
thr_join.c | ||
thr_kern.c | ||
thr_kill.c | ||
thr_main_np.c | ||
thr_mattr_init.c | ||
thr_mattr_kind_np.c | ||
thr_msync.c | ||
thr_multi_np.c | ||
thr_mutex_prioceiling.c | ||
thr_mutex_protocol.c | ||
thr_mutex.c | ||
thr_mutexattr_destroy.c | ||
thr_nanosleep.c | ||
thr_once.c | ||
thr_open.c | ||
thr_pause.c | ||
thr_poll.c | ||
thr_printf.c | ||
thr_priority_queue.c | ||
thr_private.h | ||
thr_pselect.c | ||
thr_pspinlock.c | ||
thr_raise.c | ||
thr_read.c | ||
thr_readv.c | ||
thr_resume_np.c | ||
thr_rtld.c | ||
thr_rwlock.c | ||
thr_rwlockattr.c | ||
thr_select.c | ||
thr_self.c | ||
thr_sem.c | ||
thr_seterrno.c | ||
thr_setprio.c | ||
thr_setschedparam.c | ||
thr_sig.c | ||
thr_sigaction.c | ||
thr_sigaltstack.c | ||
thr_sigmask.c | ||
thr_sigpending.c | ||
thr_sigprocmask.c | ||
thr_sigsuspend.c | ||
thr_sigwait.c | ||
thr_single_np.c | ||
thr_sleep.c | ||
thr_spec.c | ||
thr_spinlock.c | ||
thr_stack.c | ||
thr_suspend_np.c | ||
thr_switch_np.c | ||
thr_symbols.c | ||
thr_system.c | ||
thr_tcdrain.c | ||
thr_vfork.c | ||
thr_wait4.c | ||
thr_wait.c | ||
thr_waitpid.c | ||
thr_write.c | ||
thr_writev.c | ||
thr_yield.c |