jhb 32bb958227 - Reorder a few things so that when we lock the process at the end of
exit1() we don't have to release it until we acquire schd_lock to
  call cpu_throw().
- Since we can switch at any time due to preemption or a lock release
  prior to acquiring sched_lock, don't update switchtime and switchticks
  until the very end of exit1() after we have acquired sched_lock.
- Interlock the proctree_lock and proc lock in wait1() and exit1() to
  avoid lost wakeups when a parent blocks waiting for a child to exit at
  the bottom of wait1().  In exit1() the proc lock interlocked with
  proctree_lock (and released after acquiring sched_lock) is that of
  the parent process.
- In wait1() use an exclusive lock of proctree lock while we are
  looking for a process to harvest.  This allows us to completely
  remove all references to the process once we've found one (i.e.,
  disconnect it from pgrp's, session's, zombproc list, and it's parent's
  children list) "atomically" without needing to worry about a lock
  upgrade.
- We don't need sched_lock to test if p_stat is SZOMB or SSTOP when holding
  the proc lock since the proc lock is always held with p_stat is set to
  SZOMB or SSTOP.
- Protect nprocs with an xlock of the allproc_lock.
2002-05-02 15:09:58 +00:00
..
2002-03-19 21:25:46 +00:00
2002-03-25 13:52:45 +00:00
2002-03-25 13:52:45 +00:00
2002-05-01 20:44:46 +00:00
2002-02-07 20:58:47 +00:00
2002-04-06 08:44:04 +00:00
2002-03-19 21:25:46 +00:00
2002-04-24 09:59:18 +00:00
2002-03-19 21:25:46 +00:00
2002-02-07 20:58:47 +00:00
2002-03-19 21:25:46 +00:00
2002-03-19 21:25:46 +00:00
2002-03-19 21:25:46 +00:00
2002-05-01 20:44:46 +00:00
2002-03-19 21:25:46 +00:00
2002-05-01 20:44:46 +00:00
2002-03-19 21:25:46 +00:00
2002-03-19 21:25:46 +00:00
2001-09-12 08:38:13 +00:00
2002-03-19 21:25:46 +00:00
2002-03-19 21:25:46 +00:00
2002-05-01 20:44:46 +00:00
2002-05-01 20:44:46 +00:00
2002-05-01 20:44:46 +00:00
2002-05-01 20:44:46 +00:00
2002-03-19 21:25:46 +00:00