ProgressMonitor implementation was inspired by ProgressReport one.
And we recently discovered in the ProgressReport code a bug. The following test is not reliable:
The done() method calls thread.interrupt().
But "interrupt()" only works once the thread has reached the "alive" state, and not before!