Skip to content

Commit 3e92565

Browse files
committed
Set version to 9.0.489
1 parent 2989b9f commit 3e92565

File tree

4 files changed

+16
-34
lines changed

4 files changed

+16
-34
lines changed

CHANGELOG.md

+6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog #
22

3+
## Version 9.0.489
4+
5+
Date: 2022-10-18
6+
7+
- Minor fixes on concurrency limiter hook fns.
8+
39

410
## Version 9.0.488
511

doc/user-guide.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ A promise library for Clojure and ClojureScript.
99
Leiningen:
1010

1111
```clojure
12-
[funcool/promesa "9.0.488"]
12+
[funcool/promesa "9.0.489"]
1313
```
1414

1515
deps.edn:
1616

1717
```clojure
18-
funcool/promesa {:mvn/version "9.0.488"}
18+
funcool/promesa {:mvn/version "9.0.489"}
1919
```
2020

2121
On the JVM platform _promesa_ is built on top of *completable futures*

src/promesa/exec.cljc

+4-7
Original file line numberDiff line numberDiff line change
@@ -475,15 +475,12 @@
475475
#?(:clj
476476
(defn concurrency-limiter
477477
"Create an instance of concurrencly limiter. EXPERIMENTAL"
478-
[& {:keys [executor concurrency queue-size on-run on-poll on-queue]
479-
:or {executor *default-executor*
480-
concurrency 1
481-
queue-size Integer/MAX_VALUE}}]
482-
(let [^ExecutorService executor (resolve-executor executor)]
478+
[& {:keys [executor concurrency queue-size on-run on-queue]
479+
:or {concurrency 1 queue-size Integer/MAX_VALUE}}]
480+
(let [^ExecutorService executor (resolve-executor (or executor *default-executor*))]
483481
(doto (ConcurrencyLimiter. executor (int concurrency) (int queue-size))
484482
(cond-> (fn? on-queue) (.setOnQueueCallback on-queue))
485-
(cond-> (fn? on-run) (.setOnRunCallback on-run))
486-
(cond-> (fn? on-poll) (.setOnPollCallback on-poll))))))
483+
(cond-> (fn? on-run) (.setOnRunCallback on-run))))))
487484

488485
#?(:clj
489486
(extend-type ConcurrencyLimiter

src/promesa/exec/ConcurrencyLimiter.java

+4-25
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,6 @@
3434
import java.time.Instant;
3535

3636
public class ConcurrencyLimiter extends AFn implements IObj {
37-
final private Keyword KW_QUEUE = Keyword.intern("queue");
38-
final private Keyword KW_STATISTICS = Keyword.intern("statistics");
39-
final private Keyword KW_CURRENT_QUEUE_SIZE = Keyword.intern("current-queue-size");
40-
final private Keyword KW_CURRENT_CONCURRENCY = Keyword.intern("current-concurrency");
41-
final private Keyword KW_REMAINING_QUEUE_SIZE = Keyword.intern("remaining-queue-size");
42-
final private Keyword KW_REMAINING_CONCURRENCY = Keyword.intern("remaining-concurrency");
43-
4437
private final BlockingQueue<Task> queue;
4538
private final ExecutorService executor;
4639
private final Semaphore limit;
@@ -50,7 +43,6 @@ public class ConcurrencyLimiter extends AFn implements IObj {
5043

5144
protected IFn onQueueCallback;
5245
protected IFn onRunCallback;
53-
protected IFn onPollCallback;
5446

5547
public ConcurrencyLimiter(final ExecutorService executor,
5648
final int maxConcurrency,
@@ -70,10 +62,6 @@ public void setOnRunCallback(IFn f) {
7062
this.onRunCallback = f;
7163
}
7264

73-
public void setOnPollCallback(IFn f) {
74-
this.onPollCallback = f;
75-
}
76-
7765
public IObj withMeta(IPersistentMap meta) {
7866
this.metadata = meta;
7967
return this;
@@ -95,7 +83,7 @@ public CompletableFuture invoke(Object arg1) {
9583
}
9684

9785
if (this.onQueueCallback != null) {
98-
this.onQueueCallback.invoke();
86+
this.onQueueCallback.invoke(this);
9987
}
10088

10189
this.executor.submit((Runnable)this);
@@ -155,15 +143,6 @@ public void run() {
155143
this.executor.submit(task);
156144
}
157145
}
158-
159-
if (this.onRunCallback != null) {
160-
var stats = PersistentArrayMap.EMPTY
161-
.assoc(KW_CURRENT_CONCURRENCY, this.getCurrentConcurrency())
162-
.assoc(KW_CURRENT_QUEUE_SIZE, this.getCurrentQueueSize())
163-
.assoc(KW_REMAINING_CONCURRENCY, this.getRemainingConcurrency())
164-
.assoc(KW_REMAINING_QUEUE_SIZE, this.getRemainingQueueSize());
165-
this.onRunCallback.invoke(stats);
166-
}
167146
}
168147

169148
private static class Task implements Runnable {
@@ -187,8 +166,8 @@ public boolean isCancelled() {
187166

188167
@SuppressWarnings("unchecked")
189168
public void run() {
190-
if (this.limiter.onPollCallback != null) {
191-
this.limiter.onPollCallback.invoke(this.createdAt);
169+
if (this.limiter.onRunCallback != null) {
170+
this.limiter.onRunCallback.invoke(this.limiter, this.createdAt);
192171
}
193172

194173
final CompletionStage future;
@@ -217,7 +196,7 @@ public void run() {
217196
}
218197
}
219198

220-
public static class CapacityLimitReachedException extends RuntimeException{
199+
public static class CapacityLimitReachedException extends RuntimeException {
221200
public CapacityLimitReachedException(String msg) {
222201
super(msg);
223202
}

0 commit comments

Comments
 (0)