[project @ 2003-12-16 13:27:31 by simonmar]
Clean up Capability API
~~~~~~~~~~~~~~~~~~~~~~~
- yieldToReturningWorker() is now yieldCapability(), and performs all
kinds of yielding (both to returning workers and passing to other
OS threads). yieldCapabiltiy() does *not* re-acquire a capability.
- waitForWorkCapabilty() is now waitForCapability().
- releaseCapbility() also releases the capability when passing to
another OS thread. It is the only way to release a capability (apart
from yieldCapability(), which calls releaseCapability() internally).
- passCapability() and passCapabilityToWorker() now do not release the
capability. They just set a flag to indicate where the capabiliy
should go when it it next released.
Other cleanups:
- Removed all the SMP stuff from Schedule.c. It had extensive bitrot,
and was just obfuscating the code. If it is ever needed again,
it can be resurrected from CVS.
- Removed some other dead code in Schedule.c, in an attempt to make
this file more manageable.