Javadoc
When an IOException happened, the loop is going to be retried but we need to wait a bit
before retrying. If we don't wait, it can be that a subsequent call will run into an IOException
immediately. This can lead to a very hot loop and we don't want that. A similar approach is used
in Netty