[project @ 2002-02-18 13:26:12 by sof]
Be clear about the lock assumptions of GarbageCollect(); it
is now required to hold sched_mutex.
The real reason for adding this requirement is so that when
prior to scheduling finalizers and doing thread resurrection,
GarbageCollect() may set the lock status of sched_mutex to
the state expected by scheduleFinalizers() and resurrectThreads()
(i.e., unlocked).
Note: this is only an issue with pthreads. In the Win32 threading
model, it's a NOP for a thread to grab a mutex it already holds.