Now I see that the code snippet in TimeUnit.timedWait is also in need
of fixing. Hmmmm ....
public synchronized Object poll(long timeout, TimeUnit unit)
throws InterruptedException {
while (empty) {
unit.timedWait(this, timeout);
...
}
}