Using `Thread.currentThread.interrupt()` within the while loop will spin the CPU because the next call to `Thread.sleep()` will immediately be interrupted again.

If we truly want this to be uninterruptible, the javadocs should clearly state that.

But I agree, it's better to re-set the interrupted bit and exit (or simply change the method to `throws InterruptedException`). Interruptions should rarely (if ever) be simply swallowed.