private Object mutex() {
        Object mutex = mutexDoNotUseDirectly;
        if (mutex == null) {
            synchronized (this) {
                mutex = mutexDoNotUseDirectly;
                if (mutex == null) {
                    mutexDoNotUseDirectly = mutex = new Object();
                }
            }
        }
        return mutex;
    }
The underlying timer; used both to measure elapsed time and sleep as necessary. A separate
object to facilitate testing.
lts-core/src/main/java/com/github/ltsopensource/core/commons/concurrent/limiter/RateLimiter.java