- On a uniprocessor, wakeup()'s thundering herd is ordered by priority implicitly. - The locking protocol here needs to be shot in the head and redone anyhow, and when that is done, this can be converted to use condition variables.