From 63fee85aa2a45f1550a0cfe445e5964ccfca40e4 Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Tue, 26 Oct 2021 10:27:42 +0200 Subject: Keep writing as long as there is anything to write --- .../document/restapi/resource/DocumentV1ApiHandler.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'vespaclient-container-plugin') diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java index a692362cc5f..92e2c95f704 100644 --- a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java +++ b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java @@ -1122,11 +1122,13 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler { }); if (writing.compareAndSet(false, true)) // Occupy only a single thread for writing. defaultExecutor.execute(() -> { - try { - for (Runnable write; (write = writes.poll()) != null; write.run()); - } - finally { - writing.set(false); + while (writing.get()) { + try { + for (Runnable write; (write = writes.poll()) != null; write.run()) ; + } + finally { + writing.set( ! writes.isEmpty()); + } } }); } -- cgit v1.2.3