use lists for queued calls, clean up on resolution

This commit is contained in:
Vaci Koblizek 2020-12-01 17:08:27 +00:00
parent 837f1b324c
commit 3b1f5f416c

View file

@ -738,8 +738,8 @@ public final class Capability {
// resolves). // resolves).
private ClientHook redirect; private ClientHook redirect;
private final Queue<CompletableFuture<ClientHook>> queuedCalls = new ArrayDeque<>(); private final List<CompletableFuture<ClientHook>> queuedCalls = new ArrayList<>();
private final Queue<LocalRequest> pendingCalls = new ArrayDeque<>(); private final List<LocalRequest> pendingCalls = new ArrayList<>();
QueuedClient(CompletableFuture<ClientHook> promise) { QueuedClient(CompletableFuture<ClientHook> promise) {
this.selfResolutionOp = promise.handle((inner, exc) -> { this.selfResolutionOp = promise.handle((inner, exc) -> {
@ -760,6 +760,9 @@ public final class Capability {
hook.releaseCall(); hook.releaseCall();
} }
this.queuedCalls.clear();
this.pendingCalls.clear();
return null; return null;
}); });
} }