synchronized ListenableFuture<Limiter.Listener> acquire() { SettableFuture<Limiter.Listener> future = SettableFuture.create(); addSlowAcquireMarker(future); waitingRequests.add(future); processQueue(); return future; }
private synchronized void resetLimiter() { log.warn("Timed out waiting to get permits for concurrency. In most cases this would indicate some kind of " + "deadlock. We expect that either this is caused by not closing response bodies " + "(there should be OkHttp log lines indicating this), or service overloading.", SafeArg.of("serviceClass", serviceClass), SafeArg.of("limiterKey", limiterKey), SafeArg.of("timeout", timeout)); leakSuspected.mark(); limiter = limiterFactory.get(); processQueue(); }
private synchronized void resetLimiter() { log.warn("Timed out waiting to get permits for concurrency. In most cases this would indicate some kind of " + "deadlock. We expect that either this is caused by not closing response bodies " + "(there should be OkHttp log lines indicating this), or service overloading.", SafeArg.of("serviceClass", serviceClass), SafeArg.of("limiterKey", limiterKey), SafeArg.of("timeout", timeout)); leakSuspected.mark(); limiter = limiterFactory.get(); processQueue(); }
@Override public void onSuccess() { listener.onSuccess(); processQueue(); }
synchronized ListenableFuture<Limiter.Listener> acquire() { SettableFuture<Limiter.Listener> future = SettableFuture.create(); addSlowAcquireMarker(future); waitingRequests.add(future); processQueue(); return future; }
@Override public void onIgnore() { listener.onIgnore(); processQueue(); }
@Override public void onSuccess() { listener.onSuccess(); processQueue(); }
@Override public void onDropped() { listener.onDropped(); processQueue(); } };
@Override public void onDropped() { listener.onDropped(); processQueue(); } };
@Override public void onIgnore() { listener.onIgnore(); processQueue(); }