[project @ 2005-10-27 15:26:06 by simonmar]
- Very simple work-sharing amongst Capabilities: whenever a Capability
detects that it has more than 1 thread in its run queue, it runs
around looking for empty Capabilities, and shares the threads on its
run queue equally with the free Capabilities it finds.
- unlock the garbage collector's mutable lists, by having private
mutable lists per capability (and per generation). The private
mutable lists are moved onto the main mutable lists at each GC.
This pulls the old-generation update code out of the storage manager
mutex, which is one of the last remaining causes of (alleged) contention.
- Fix some problems with synchronising when a GC is required. We should
synchronise quicker now.