diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2021-10-26 10:27:42 +0200 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2021-10-26 10:27:42 +0200 |
commit | 63fee85aa2a45f1550a0cfe445e5964ccfca40e4 (patch) | |
tree | 1e39fdce6f36ae7e8c49b898b76ac350140c3dee /vespaclient-container-plugin/src/main | |
parent | 3289fb5d2de3ad69da0e8bbe41ce6f5357b5f5e6 (diff) |
Keep writing as long as there is anything to write
Diffstat (limited to 'vespaclient-container-plugin/src/main')
-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()); + } } }); } |