We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 2df9d68 commit a1cfd6fCopy full SHA for a1cfd6f
src/main/java/io/api/etherscan/manager/impl/QueueManager.java
@@ -2,7 +2,10 @@
2
3
import io.api.etherscan.manager.IQueueManager;
4
5
-import java.util.concurrent.*;
+import java.util.concurrent.Executors;
6
+import java.util.concurrent.ScheduledExecutorService;
7
+import java.util.concurrent.Semaphore;
8
+import java.util.concurrent.TimeUnit;
9
10
/**
11
* Queue Semaphore implementation with size and reset time as params
@@ -54,7 +57,13 @@ public void takeTurn() {
54
57
}
55
58
56
59
private Runnable releaseLocks(int toRelease) {
- return () -> semaphore.release(toRelease);
60
+ return () -> {
61
+ int availablePermits = semaphore.availablePermits();
62
+ int neededPermits = toRelease - availablePermits;
63
+ if (neededPermits > 0) {
64
+ semaphore.release(neededPermits);
65
+ }
66
+ };
67
68
69
@Override
0 commit comments