Author: nextgens
Date: 2008-04-28 16:17:10 +0000 (Mon, 28 Apr 2008)
New Revision: 19589

Modified:
   trunk/freenet/src/freenet/node/PeerManager.java
Log:
Fix a deadlock in PeerManager: writePeersInner will request PeerNode.this *but* 
the calling thread might not have it

Modified: trunk/freenet/src/freenet/node/PeerManager.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerManager.java     2008-04-28 15:45:40 UTC 
(rev 19588)
+++ trunk/freenet/src/freenet/node/PeerManager.java     2008-04-28 16:17:10 UTC 
(rev 19589)
@@ -1008,6 +1008,7 @@
     }

     private void writePeersInner() {
+           synchronized(this) {
        synchronized(writePeersSync) {
                if(darkFilename != null)
                        writePeersInner(darkFilename, getDarknetPeers());
@@ -1018,6 +1019,7 @@
                        writePeersInner(om.getOldPeersFilename(), 
om.getOldPeers());
                }
        }
+           }
     }

     /**


Reply via email to