1c70d00733
mode. This allows the binder to be functional in the child after the fork (assuming no lazy loading of a filter is needed), but other rtld services which require write lock on rtld_bind_lock cause deadlock, if called by child. Change the _rtld_atfork() to lock the bind lock in write mode, making the rtld fully functional after the fork. Pre-resolve the symbols which are called by the libthr' fork() interposer, since dynamic resolution causes deadlock due to the rtld_bind_lock already owned in the write mode. Reported and tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 2 weeks |
||
---|---|---|
.. | ||
Makefile.inc | ||
thr_affinity.c | ||
thr_attr.c | ||
thr_autoinit.c | ||
thr_barrier.c | ||
thr_barrierattr.c | ||
thr_cancel.c | ||
thr_clean.c | ||
thr_concurrency.c | ||
thr_cond.c | ||
thr_condattr.c | ||
thr_create.c | ||
thr_detach.c | ||
thr_equal.c | ||
thr_event.c | ||
thr_exit.c | ||
thr_fork.c | ||
thr_getcpuclockid.c | ||
thr_getprio.c | ||
thr_getschedparam.c | ||
thr_getthreadid_np.c | ||
thr_info.c | ||
thr_init.c | ||
thr_join.c | ||
thr_kern.c | ||
thr_kill.c | ||
thr_list.c | ||
thr_main_np.c | ||
thr_multi_np.c | ||
thr_mutex.c | ||
thr_mutexattr.c | ||
thr_once.c | ||
thr_printf.c | ||
thr_private.h | ||
thr_pspinlock.c | ||
thr_resume_np.c | ||
thr_rtld.c | ||
thr_rwlock.c | ||
thr_rwlockattr.c | ||
thr_self.c | ||
thr_sem.c | ||
thr_setprio.c | ||
thr_setschedparam.c | ||
thr_sig.c | ||
thr_single_np.c | ||
thr_sleepq.c | ||
thr_spec.c | ||
thr_spinlock.c | ||
thr_stack.c | ||
thr_suspend_np.c | ||
thr_switch_np.c | ||
thr_symbols.c | ||
thr_syscalls.c | ||
thr_umtx.c | ||
thr_umtx.h | ||
thr_yield.c |