From 2aeef44f8d048f22ae25f8db6568b934e09569a6 Mon Sep 17 00:00:00 2001 From: zzz Date: Mon, 29 Jan 2007 04:03:36 +0000 Subject: [PATCH] 2007-01-28 zzz * i2psnark: Don't hold sendQueue lock while flushing output, to make everything run smoother --- .../java/src/org/klomp/snark/PeerConnectionOut.java | 13 ++++++++++++- history.txt | 6 +++++- router/java/src/net/i2p/router/RouterVersion.java | 4 ++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/apps/i2psnark/java/src/org/klomp/snark/PeerConnectionOut.java b/apps/i2psnark/java/src/org/klomp/snark/PeerConnectionOut.java index 4c9ceae0ff..12c0f7c681 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/PeerConnectionOut.java +++ b/apps/i2psnark/java/src/org/klomp/snark/PeerConnectionOut.java @@ -72,6 +72,16 @@ class PeerConnectionOut implements Runnable { Message m = null; PeerState state = null; + boolean shouldFlush; + synchronized(sendQueue) + { + shouldFlush = !quit && peer.isConnected() && sendQueue.isEmpty(); + } + if (shouldFlush) + // Make sure everything will reach the other side. + // flush while not holding lock, could take a long time + dout.flush(); + synchronized(sendQueue) { while (!quit && peer.isConnected() && sendQueue.isEmpty()) @@ -79,7 +89,8 @@ class PeerConnectionOut implements Runnable try { // Make sure everything will reach the other side. - dout.flush(); + // don't flush while holding lock, could take a long time + // dout.flush(); // Wait till more data arrives. sendQueue.wait(60*1000); diff --git a/history.txt b/history.txt index bde5010c27..963bfe3882 100644 --- a/history.txt +++ b/history.txt @@ -1,4 +1,8 @@ -$Id: history.txt,v 1.544 2007-01-20 22:49:41 complication Exp $ +$Id: history.txt,v 1.545 2007-01-27 21:30:07 zzz Exp $ + +2007-01-28 zzz + * i2psnark: Don't hold sendQueue lock while flushing output, + to make everything run smoother 2007-01-27 zzz * i2psnark: Fix orphaned Snark reader tasks leading to OOMs diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 133a093cee..4e647d6ef4 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -15,9 +15,9 @@ import net.i2p.CoreVersion; * */ public class RouterVersion { - public final static String ID = "$Revision: 1.480 $ $Date: 2007-01-20 22:49:41 $"; + public final static String ID = "$Revision: 1.481 $ $Date: 2007-01-27 21:30:05 $"; public final static String VERSION = "0.6.1.26"; - public final static long BUILD = 14; + public final static long BUILD = 15; public static void main(String args[]) { System.out.println("I2P Router version: " + VERSION + "-" + BUILD); System.out.println("Router ID: " + RouterVersion.ID);