On Monday 28 April 2008 17:17, nextgens at freenetproject.org wrote:
> 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
We don't really want to hold the PeerManager lock while doing I/O now do we?
How did this deadlock work?
>
> 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());
> }
> }
> + }
> }
>
> /**
>
> _______________________________________________
> cvs mailing list
> cvs at freenetproject.org
> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL:
<https://emu.freenetproject.org/pipermail/devl/attachments/20080430/07871e1d/attachment.pgp>