summaryrefslogtreecommitdiffstats
path: root/vespaclient-core
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-01-09 15:51:17 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2017-01-09 15:51:17 +0100
commite3f1192b39150b70372b508032dc1204b747eaf6 (patch)
treea278cee0376275df61622a8888bee44a10d9756b /vespaclient-core
parent91d2b115be0dc28c26c47e5331bdaea01cc3abd3 (diff)
Enable clearing and unblocking.
Diffstat (limited to 'vespaclient-core')
-rwxr-xr-xvespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java3
1 files changed, 2 insertions, 1 deletions
diff --git a/vespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java b/vespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java
index 4c96a7efc0b..08243c4e0ec 100755
--- a/vespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java
+++ b/vespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java
@@ -223,10 +223,11 @@ public class SharedSender implements ReplyHandler {
@Override
protected boolean tryReleaseShared(int releases) {
// Increment/Decrement count; signal when transition downwards to zero.
+ // releases == 0 means unblock all
while ( true ) {
int c = getState();
if ((c == 0) && (releases >= 0)) { return false; }
- int nextc = (c > releases) ? c - releases : 0;
+ int nextc = (c > releases) ? ((releases != 0) ? c - releases : 0) : 0;
if (compareAndSetState(c, nextc)) {
return nextc == 0;
}