summaryrefslogtreecommitdiffstats
path: root/vespa-http-client/src/main
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-10-18 07:46:24 +0200
committerGitHub <noreply@github.com>2018-10-18 07:46:24 +0200
commit7e7ff62f6d9352cc196a62a67ab64e1bb6c94361 (patch)
tree3d39cf9ad43ef965aeb81d00ad7fbd97cb97b93a /vespa-http-client/src/main
parent6a64d4aa2d5a266d83117c22c3ab8f9d543af8c7 (diff)
parentff3929298b5d25511cec88ee987e9f81eb8d7f02 (diff)
Merge pull request #7347 from vespa-engine/balder/avoid-deadlocking-yourself
Balder/avoid deadlocking yourself
Diffstat (limited to 'vespa-http-client/src/main')
-rw-r--r--vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/communication/DocumentQueue.java4
-rw-r--r--vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/communication/IOThread.java2
2 files changed, 3 insertions, 3 deletions
diff --git a/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/communication/DocumentQueue.java b/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/communication/DocumentQueue.java
index d963ae79227..2b746cf56d0 100644
--- a/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/communication/DocumentQueue.java
+++ b/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/communication/DocumentQueue.java
@@ -38,10 +38,10 @@ class DocumentQueue {
}
}
- void put(Document document) throws InterruptedException {
+ void put(Document document, boolean self) throws InterruptedException {
document.resetQueueTime();
synchronized (queue) {
- while (!closed && queue.size() >= maxSize) {
+ while (!closed && (queue.size() >= maxSize) && !self) {
queue.wait();
}
if (closed) {
diff --git a/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/communication/IOThread.java b/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/communication/IOThread.java
index f3cb0b7bcf7..328260e6761 100644
--- a/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/communication/IOThread.java
+++ b/vespa-http-client/src/main/java/com/yahoo/vespa/http/client/core/communication/IOThread.java
@@ -165,7 +165,7 @@ class IOThread implements Runnable, AutoCloseable {
public void post(final Document document) throws InterruptedException {
- documentQueue.put(document);
+ documentQueue.put(document, Thread.currentThread() == thread);
}
@Override