To avoid tight loops around errors.
Java-friendly version of ThreadSafeRateLimiter.
Used by JRateLimiter in lieu of call-by-name from java.
Used to rate limit writes to, say, mongo.
For objects that need their lifecycle to be managed and can't be just throw-away.
Fairly heavy-handed thread safe version of the above.