diff --git a/reactor-pool/src/main/java/reactor/pool/SimpleDequePool.java b/reactor-pool/src/main/java/reactor/pool/SimpleDequePool.java index d4f8cd5..34c7e16 100644 --- a/reactor-pool/src/main/java/reactor/pool/SimpleDequePool.java +++ b/reactor-pool/src/main/java/reactor/pool/SimpleDequePool.java @@ -585,10 +585,10 @@ void pendingOffer(Borrower pending) { postOffer = PENDING_SIZE.incrementAndGet(this); } - boolean noIdle = idleSize == 0; + int idle = idleSize; int estimatePermitCount = poolConfig.allocationStrategy().estimatePermitCount(); - if (noIdle && (estimatePermitCount == 0 || estimatePermitCount < postOffer)) { + if (idle + estimatePermitCount < postOffer) { pending.pendingAcquireStart = clock.millis(); if (!pending.pendingAcquireTimeout.isZero()) { pending.timeoutTask = config().pendingAcquireTimer().apply(pending, pending.pendingAcquireTimeout);