aboutsummaryrefslogtreecommitdiffstats
path: root/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/ServletOutputStreamWriter.java
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2021-05-11 21:44:26 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2021-05-11 21:44:26 +0200
commit8e57505ad9fd020f2f0241c06e5b57f20da248d2 (patch)
treed3047f8f045d4a662e533057cef4b329da57037c /container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/ServletOutputStreamWriter.java
parentae03641a1c2ec122051ddd01f2dd398f87cc0c46 (diff)
Janitor threadpool must be available across JettyHttpServer instances
Diffstat (limited to 'container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/ServletOutputStreamWriter.java')
-rw-r--r--container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/ServletOutputStreamWriter.java12
1 files changed, 5 insertions, 7 deletions
diff --git a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/ServletOutputStreamWriter.java b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/ServletOutputStreamWriter.java
index b4d03385c3b..696fd2d51ad 100644
--- a/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/ServletOutputStreamWriter.java
+++ b/container-core/src/main/java/com/yahoo/jdisc/http/server/jetty/ServletOutputStreamWriter.java
@@ -12,7 +12,6 @@ import java.util.ArrayList;
import java.util.Deque;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.Executor;
import java.util.function.Consumer;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -54,7 +53,7 @@ public class ServletOutputStreamWriter {
// GuardedBy("state")
private final ServletOutputStream outputStream;
- private final Executor executor;
+ private final Janitor janitor;
// GuardedBy("monitor")
private final Deque<ResponseContentPart> responseContentQueue = new ArrayDeque<>();
@@ -70,9 +69,9 @@ public class ServletOutputStreamWriter {
final CompletableFuture<Void> finishedFuture = new CompletableFuture<>();
- public ServletOutputStreamWriter(ServletOutputStream outputStream, Executor executor, RequestMetricReporter metricReporter) {
+ public ServletOutputStreamWriter(ServletOutputStream outputStream, Janitor janitor, RequestMetricReporter metricReporter) {
this.outputStream = outputStream;
- this.executor = executor;
+ this.janitor = janitor;
this.metricReporter = metricReporter;
}
@@ -96,7 +95,7 @@ public class ServletOutputStreamWriter {
synchronized (monitor) {
if (state == State.FINISHED_OR_ERROR) {
- executor.execute(() -> handler.failed(new IllegalStateException("ContentChannel already closed.")));
+ janitor.scheduleTask(() -> handler.failed(new IllegalStateException("ContentChannel already closed.")));
return;
}
responseContentQueue.addLast(new ResponseContentPart(buf, handler));
@@ -207,8 +206,7 @@ public class ServletOutputStreamWriter {
runCompletionHandler_logOnExceptions(
() -> responseContentPart.handler.failed(failReason));
- executor.execute(
- () -> failedParts.forEach(failCompletionHandler));
+ janitor.scheduleTask(() -> failedParts.forEach(failCompletionHandler));
}
private void writeBufferToOutputStream(ResponseContentPart contentPart) throws Throwable {