From 67a287e5cf7c13cab8be8bebad7ddf31d88242b5 Mon Sep 17 00:00:00 2001 From: Simone Bordet Date: Fri, 18 Oct 2013 12:13:56 +0200 Subject: [PATCH] Restored flushing field, it is necessary for concurrent writes. --- .../java/org/eclipse/jetty/fcgi/generator/Flusher.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/fcgi-core/src/main/java/org/eclipse/jetty/fcgi/generator/Flusher.java b/fcgi-core/src/main/java/org/eclipse/jetty/fcgi/generator/Flusher.java index ae262d7afaf..075617483ec 100644 --- a/fcgi-core/src/main/java/org/eclipse/jetty/fcgi/generator/Flusher.java +++ b/fcgi-core/src/main/java/org/eclipse/jetty/fcgi/generator/Flusher.java @@ -36,6 +36,7 @@ public class Flusher private final Queue queue = new ConcurrentArrayQueue<>(); private final Callback flushCallback = new FlushCallback(); private final EndPoint endPoint; + private boolean flushing; public Flusher(EndPoint endPoint) { @@ -47,9 +48,10 @@ public class Flusher synchronized (queue) { for (Generator.Result result : results) - { queue.offer(result); - } + if (flushing) + return; + flushing = true; } endPoint.write(flushCallback); } @@ -71,7 +73,11 @@ public class Flusher synchronized (queue) { if (queue.isEmpty()) + { + // No more writes to do, switch to non-flushing + flushing = false; return false; + } // TODO: here is where we want to gather more results to perform gathered writes result = queue.poll(); }