// Suspend the thread until an event occurs User::WaitForAnyRequest(); // Thread wakes when the request semaphore is signaled // Inspect each active object added to the scheduler, // in order of decreasing priority // Call the event handler of the first which is active & completed