Searched hist:"8638 fe7bea3efc18bf04517d1993c8dfa448e571" (Results 1 – 3 of 3) sorted by relevance
/freebsd/sys/kern/ |
H A D | subr_syscall.c | diff 8638fe7bea3efc18bf04517d1993c8dfa448e571 Mon Dec 08 17:18:05 CET 2014 Konstantin Belousov <kib@FreeBSD.org> Thread waiting for the vfork(2)-ed child to exec or exit, must allow for the suspension.
Currently, the loop performs uninterruptible cv_wait(9) call, which prevents suspension until child allows further execution of parent. If child is stopped, suspension or single-threading is delayed indefinitely.
Create a helper thread_suspend_check_needed() to identify the need for a call to thread_suspend_check(). It is required since call to the thread_suspend_check() cannot be safely done while owning the child (p2) process lock. Only when suspension is needed, drop p2 lock and call thread_suspend_check(). Perform wait for cv with timeout, in case suspend is requested after wait started; I do not see a better way to interrupt the wait.
Reported and tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week
|
H A D | kern_thread.c | diff 8638fe7bea3efc18bf04517d1993c8dfa448e571 Mon Dec 08 17:18:05 CET 2014 Konstantin Belousov <kib@FreeBSD.org> Thread waiting for the vfork(2)-ed child to exec or exit, must allow for the suspension.
Currently, the loop performs uninterruptible cv_wait(9) call, which prevents suspension until child allows further execution of parent. If child is stopped, suspension or single-threading is delayed indefinitely.
Create a helper thread_suspend_check_needed() to identify the need for a call to thread_suspend_check(). It is required since call to the thread_suspend_check() cannot be safely done while owning the child (p2) process lock. Only when suspension is needed, drop p2 lock and call thread_suspend_check(). Perform wait for cv with timeout, in case suspend is requested after wait started; I do not see a better way to interrupt the wait.
Reported and tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week
|
/freebsd/sys/sys/ |
H A D | proc.h | diff 8638fe7bea3efc18bf04517d1993c8dfa448e571 Mon Dec 08 17:18:05 CET 2014 Konstantin Belousov <kib@FreeBSD.org> Thread waiting for the vfork(2)-ed child to exec or exit, must allow for the suspension.
Currently, the loop performs uninterruptible cv_wait(9) call, which prevents suspension until child allows further execution of parent. If child is stopped, suspension or single-threading is delayed indefinitely.
Create a helper thread_suspend_check_needed() to identify the need for a call to thread_suspend_check(). It is required since call to the thread_suspend_check() cannot be safely done while owning the child (p2) process lock. Only when suspension is needed, drop p2 lock and call thread_suspend_check(). Perform wait for cv with timeout, in case suspend is requested after wait started; I do not see a better way to interrupt the wait.
Reported and tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week
|