aboutsummaryrefslogtreecommitdiffstats
path: root/vespaclient-container-plugin
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2021-10-26 10:27:42 +0200
committerJon Marius Venstad <venstad@gmail.com>2021-10-26 10:27:42 +0200
commit63fee85aa2a45f1550a0cfe445e5964ccfca40e4 (patch)
tree1e39fdce6f36ae7e8c49b898b76ac350140c3dee /vespaclient-container-plugin
parent3289fb5d2de3ad69da0e8bbe41ce6f5357b5f5e6 (diff)
Keep writing as long as there is anything to write
Diffstat (limited to 'vespaclient-container-plugin')
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java12
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());
+ }
}
});
}