Author: toad
Date: 2006-12-01 18:23:00 +0000 (Fri, 01 Dec 2006)
New Revision: 11174

Modified:
   trunk/freenet/src/freenet/io/comm/UdpSocketManager.java
Log:
Locking: _unclaimed is synched on _filters.

Modified: trunk/freenet/src/freenet/io/comm/UdpSocketManager.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/UdpSocketManager.java     2006-12-01 
17:52:48 UTC (rev 11173)
+++ trunk/freenet/src/freenet/io/comm/UdpSocketManager.java     2006-12-01 
18:23:00 UTC (rev 11174)
@@ -680,21 +680,25 @@
        /**
         * @return the number of received messages that are currently unclaimed
         */
-       public synchronized int getUnclaimedFIFOSize() {
-               return _unclaimed.size();
+       public int getUnclaimedFIFOSize() {
+               synchronized(_filters) { // FIXME unnecessary synch?
+                       return _unclaimed.size();
+               }
        }

-       public synchronized Map getUnclaimedFIFOMessageCounts() {
+       public Map getUnclaimedFIFOMessageCounts() {
                Map messageCounts = new HashMap();
-               for (ListIterator i = _unclaimed.listIterator(); i.hasNext();) {
-                       Message m = (Message) i.next();
-                       String messageName = m.getSpec().getName();
-                       Integer messageCount = (Integer) 
messageCounts.get(messageName);
-                       if (messageCount == null) {
-                               messageCounts.put(messageName, new Integer(1) );
-                       } else {
-                               messageCount = new 
Integer(messageCount.intValue() + 1);
-                               messageCounts.put(messageName, messageCount );
+               synchronized(_filters) {
+                       for (ListIterator i = _unclaimed.listIterator(); 
i.hasNext();) {
+                               Message m = (Message) i.next();
+                               String messageName = m.getSpec().getName();
+                               Integer messageCount = (Integer) 
messageCounts.get(messageName);
+                               if (messageCount == null) {
+                                       messageCounts.put(messageName, new 
Integer(1) );
+                               } else {
+                                       messageCount = new 
Integer(messageCount.intValue() + 1);
+                                       messageCounts.put(messageName, 
messageCount );
+                               }
                        }
                }
                return messageCounts;


Reply via email to