CVS update: JGroups/src/org/jgroups/util CreditMap.java
"Bela Ban" <[email protected]>
| Newsgroups | gmane.comp.java.javagroups.cvs |
|---|---|
| Message-ID | <[email protected]> |
User: belaban
Date: 10/09/07 13:25:21
Modified: src/org/jgroups/util CreditMap.java
Log:
added clear()
Revision Changes Path
1.3 +24 -4 JGroups/src/org/jgroups/util/CreditMap.java
Index: CreditMap.java
===================================================================
RCS file: /cvsroot/javagroups/JGroups/src/org/jgroups/util/CreditMap.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- CreditMap.java 7 Sep 2010 10:58:58 -0000 1.2
+++ CreditMap.java 7 Sep 2010 13:25:21 -0000 1.3
@@ -14,10 +14,11 @@
/**
* Maintains credits for senders, when credits fall below 0, a sender blocks until new credits have been received.
* @author Bela Ban
- * @version $Id: CreditMap.java,v 1.2 2010/09/07 10:58:58 belaban Exp $
+ * @version $Id: CreditMap.java,v 1.3 2010/09/07 13:25:21 belaban Exp $
*/
public class CreditMap {
protected final long max_credits;
+
@GuardedBy("lock")
protected final Map<Address,Long> credits=new HashMap<Address,Long>();
protected long min_credits;
@@ -31,6 +32,14 @@
min_credits=max_credits;
}
+ public long getAccumulatedCredits() {
+ return accumulated_credits;
+ }
+
+ public long getMinCredits() {
+ return min_credits;
+ }
+
public Set<Address> keys() {
lock.lock();
try {
@@ -51,11 +60,11 @@
}
}
- public Long putIfAbsent(Address key, Long value) {
+ public Long putIfAbsent(Address key) {
lock.lock();
try {
Long val=credits.get(key);
- return val != null? val : credits.put(key, value);
+ return val != null? val : credits.put(key, max_credits);
}
finally {
lock.unlock();
@@ -114,6 +123,17 @@
}
}
+ public void clear() {
+ lock.lock();
+ try {
+ credits.clear();
+ credits_available.signalAll();
+ }
+ finally {
+ lock.unlock();
+ }
+ }
+
public String toString() {
StringBuilder sb=new StringBuilder();
lock.lock();
@@ -121,7 +141,7 @@
for(Map.Entry<Address,Long> entry: credits.entrySet()) {
sb.append(entry.getKey()).append(": ").append(entry.getValue()).append("\n");
}
- sb.append("min_credits=" + min_credits);
+ sb.append("min_credits=" + min_credits + ", accumulated=" + accumulated_credits);
}
finally {
lock.unlock();
------------------------------------------------------------------------------
This SF.net Dev2Dev email is sponsored by:
Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd