Skip to content

Commit 2a73eb3

Browse files
committed
Use thread pool for executing tasks asynchronously
1 parent 8dbff3d commit 2a73eb3

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

ocpp-common/src/main/java/eu/chargetime/ocpp/AsyncPromiseFulfillerDecorator.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,22 +28,23 @@ of this software and associated documentation files (the "Software"), to deal
2828
import eu.chargetime.ocpp.model.Confirmation;
2929
import eu.chargetime.ocpp.model.Request;
3030
import java.util.concurrent.CompletableFuture;
31+
import java.util.concurrent.ExecutorService;
32+
import java.util.concurrent.Executors;
3133

3234
public class AsyncPromiseFulfillerDecorator implements PromiseFulfiller {
3335

3436
private final PromiseFulfiller promiseFulfiller;
3537

38+
private static ExecutorService executor = Executors.newCachedThreadPool();
39+
40+
public static void setExecutor(ExecutorService newExecutor) {
41+
executor = newExecutor;
42+
}
43+
3644
@Override
3745
public void fulfill(
38-
CompletableFuture<Confirmation> promise, SessionEvents eventHandler, Request request) {
39-
new Thread(
40-
new Runnable() {
41-
@Override
42-
public void run() {
43-
promiseFulfiller.fulfill(promise, eventHandler, request);
44-
}
45-
})
46-
.start();
46+
CompletableFuture<Confirmation> promise, SessionEvents eventHandler, Request request) {
47+
executor.submit(() -> promiseFulfiller.fulfill(promise, eventHandler, request));
4748
}
4849

4950
public AsyncPromiseFulfillerDecorator(PromiseFulfiller promiseFulfiller) {

0 commit comments

Comments
 (0)