diff options
Diffstat (limited to 'vespaclient-container-plugin')
-rw-r--r-- | vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java | 12 |
1 files changed, 7 insertions, 5 deletions
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()); + } } }); } |