It seems pretty weird, but you never know -- sometimes dumb looking code turns out to be smart...
One thing is for certain: the wait() will always last for 100 milliseconds, unless another
thread calls interrupt(); no-one will ever call notify().
Perhaps that's the point. The author of this code seems to be using wait(100) as a substitute for Thread.sleep(100), maybe not realizing that interrupt() will interupt sleep() just as it interrupts wait().
On the other hand, the synchronized block also serves as a memory barrier, and so maybe they have a vague idea about propagating memory contents across threads, and are trying to kill two birds with one stone? In that case, it's the opposite of "programming by intention," it's "try something and see what happens."
Anyway, I think I'd replace the whole synchronized block with a call to Thread.sleep(100), which expresses the intent much more clearly.
[ August 11, 2003: Message edited by: Ernest Friedman-Hill ]