Skip to content

Commit

Permalink
Computing credits and sending REPLENISH message back *after* message …
Browse files Browse the repository at this point in the history
…delivery
  • Loading branch information
belaban committed Jun 24, 2016
1 parent 71d1f25 commit 3489e07
Showing 1 changed file with 14 additions and 13 deletions.
27 changes: 14 additions & 13 deletions src/org/jgroups/protocols/FlowControl.java
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@ public Object down(Event evt) {
return retval;

case Event.CONFIG:
handleConfigEvent((Map<String,Object>)evt.getArg());
handleConfigEvent((Map<String,Object>)evt.getArg());
break;

case Event.VIEW_CHANGE:
Expand Down Expand Up @@ -370,15 +370,17 @@ public Object up(Event evt) {
return null; // don't pass message up
}

Address sender=msg.getSrc();
long new_credits=adjustCredit(received, sender, msg.getLength());

try {
return up_prot.up(evt);
}
finally {
if(new_credits > 0)
sendCredit(sender, new_credits);
int length=msg.getLength();
if(length > 0) {
Address sender=msg.getSrc();
long new_credits=adjustCredit(received, sender, length);
if(new_credits > 0)
sendCredit(sender, new_credits);
}
}

case Event.VIEW_CHANGE:
Expand Down Expand Up @@ -431,18 +433,17 @@ public void up(MessageBatch batch) {
length+=msg.getLength();
}

Address sender=batch.sender();
long new_credits=0;
if(length > 0)
new_credits=adjustCredit(received, sender, length);

if(!batch.isEmpty()) {
try {
up_prot.up(batch);
}
finally {
if(new_credits > 0)
sendCredit(sender, new_credits);
if(length > 0) {
Address sender=batch.sender();
long new_credits=adjustCredit(received, sender, length);
if(new_credits > 0)
sendCredit(sender, new_credits);
}
}
}
}
Expand Down

0 comments on commit 3489e07

Please sign in to comment.