Ah, right.  I think I had forgotten that wait() gives up the lock.