Spun off from
LOGCXX-278. Thread::sleep() will call apr_sleep() which will unconditionally sleep for the specified time. The equivalent Java method will awake early and throw an InterruptedException if Thread::interrupt() is called. The current behavior means that shutdown has to wait until all sleeping threads complete their naps.
Modifying Thread::sleep() to more closely mimic the Java equivalent will require viewing the current uses of Thread::sleep to make sure that the proper catch clauses are present.