-
Simon Marlow authored
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.
de02e02a