It does, except that it doesn't wreak havoc on synchronization primitives (APCs can be queued on processes that are waiting on a semaphore or event; if that happens, and a concurrent wakeup happens, something else will be woken up with potential for starvation or even deadlocks). Search for PulseEvent on MSDN or Raymond Chen's blog.