On Saturday 18 April 2009 15:00:42 [email protected] wrote: > Author: j16sdiz > Date: 2009-04-18 14:00:42 +0000 (Sat, 18 Apr 2009) > New Revision: 26969 > > Modified: > trunk/freenet/src/freenet/node/FailureTable.java > Log: > Synchroized for update while cleanup > > Modified: trunk/freenet/src/freenet/node/FailureTable.java > =================================================================== > --- trunk/freenet/src/freenet/node/FailureTable.java 2009-04-18 14:00:15 UTC (rev 26968) > +++ trunk/freenet/src/freenet/node/FailureTable.java 2009-04-18 14:00:42 UTC (rev 26969) > @@ -614,6 +614,7 @@ > entriesByKey.valuesToArray(entries); > } > for(int i=0;i<entries.length;i++) { > + synchronized(entries[i]) { > if(entries[i].cleanup()) { > synchronized(FailureTable.this) { > if(entries[i].isEmpty()) { > @@ -621,6 +622,7 @@ > } > } > } > + }
This will deadlock. We always take the FailureTable lock FIRST. I have committed a fix in 323a109.
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Devl mailing list [email protected] http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
