2010.01.21 The next version (experiment 4) will add multiple event queues as specified in the Nutt lab 8. 2010.01.21 Now this needs some serious test loads. 2010.01.21 If you're reading this, then you'll see how ridicuously simple this implementation is. 2010.01.21 Ignore the previous note. Experiment 3 here just uses sleep_on and wake_up as-is and without anything else. It all seems to work just fine. Each sleep_on call puts puts the calling task on the wait queue. The wake_up call wakes up every task on the wait queue. If I wanted to just wake up one queued process at a time I would probably just use wake_up_process. And, figure out how to dequeue the process from the wait queue. 2010.01.21 Experiment 3 begins with experiment 2 but now sets up one real event queue to hold waiting processes. The signal code will release one waiting process in this version. If there are no processes to release, then the signal returns without effect. We'll use the code pulled straight from sleep_on and wake_up, but without the macros so it is easier to see what is going on.