Allow Giant to be recursed when a process terminates.
This commit is contained in:
parent
28059d16ea
commit
d2a5bcc3d3
@ -251,8 +251,8 @@ cpu_exit(p)
|
||||
|
||||
PROC_LOCK(p);
|
||||
mtx_lock_spin(&sched_lock);
|
||||
mtx_unlock_flags(&Giant, MTX_NOSWITCH);
|
||||
mtx_assert(&Giant, MA_NOTOWNED);
|
||||
while (mtx_owned(&Giant))
|
||||
mtx_unlock_flags(&Giant, MTX_NOSWITCH);
|
||||
|
||||
/*
|
||||
* We have to wait until after releasing all locks before
|
||||
|
@ -269,8 +269,8 @@ cpu_exit(p)
|
||||
}
|
||||
PROC_LOCK(p);
|
||||
mtx_lock_spin(&sched_lock);
|
||||
mtx_unlock_flags(&Giant, MTX_NOSWITCH);
|
||||
mtx_assert(&Giant, MA_NOTOWNED);
|
||||
while (mtx_owned(&Giant))
|
||||
mtx_unlock_flags(&Giant, MTX_NOSWITCH);
|
||||
|
||||
/*
|
||||
* We have to wait until after releasing all locks before
|
||||
|
@ -269,8 +269,8 @@ cpu_exit(p)
|
||||
}
|
||||
PROC_LOCK(p);
|
||||
mtx_lock_spin(&sched_lock);
|
||||
mtx_unlock_flags(&Giant, MTX_NOSWITCH);
|
||||
mtx_assert(&Giant, MA_NOTOWNED);
|
||||
while (mtx_owned(&Giant))
|
||||
mtx_unlock_flags(&Giant, MTX_NOSWITCH);
|
||||
|
||||
/*
|
||||
* We have to wait until after releasing all locks before
|
||||
|
@ -290,8 +290,8 @@ cpu_exit(p)
|
||||
|
||||
PROC_LOCK(p);
|
||||
mtx_lock_spin(&sched_lock);
|
||||
mtx_unlock_flags(&Giant, MTX_NOSWITCH);
|
||||
mtx_assert(&Giant, MA_NOTOWNED);
|
||||
while (mtx_owned(&Giant))
|
||||
mtx_unlock_flags(&Giant, MTX_NOSWITCH);
|
||||
|
||||
/*
|
||||
* We have to wait until after releasing all locks before
|
||||
|
@ -161,8 +161,8 @@ cpu_exit(p)
|
||||
{
|
||||
PROC_LOCK(p);
|
||||
mtx_lock_spin(&sched_lock);
|
||||
mtx_unlock_flags(&Giant, MTX_NOSWITCH);
|
||||
mtx_assert(&Giant, MA_NOTOWNED);
|
||||
while (mtx_owned(&Giant))
|
||||
mtx_unlock_flags(&Giant, MTX_NOSWITCH);
|
||||
|
||||
/*
|
||||
* We have to wait until after releasing all locks before
|
||||
|
@ -161,8 +161,8 @@ cpu_exit(p)
|
||||
{
|
||||
PROC_LOCK(p);
|
||||
mtx_lock_spin(&sched_lock);
|
||||
mtx_unlock_flags(&Giant, MTX_NOSWITCH);
|
||||
mtx_assert(&Giant, MA_NOTOWNED);
|
||||
while (mtx_owned(&Giant))
|
||||
mtx_unlock_flags(&Giant, MTX_NOSWITCH);
|
||||
|
||||
/*
|
||||
* We have to wait until after releasing all locks before
|
||||
|
Loading…
x
Reference in New Issue
Block a user