Author: toad Date: 2007-08-15 17:20:20 +0000 (Wed, 15 Aug 2007) New Revision: 14703
Modified: trunk/freenet/src/freenet/node/fcp/FCPConnectionOutputHandler.java Log: FCP output: More buffering. Flush on idle and on exit. Modified: trunk/freenet/src/freenet/node/fcp/FCPConnectionOutputHandler.java =================================================================== --- trunk/freenet/src/freenet/node/fcp/FCPConnectionOutputHandler.java 2007-08-15 17:17:16 UTC (rev 14702) +++ trunk/freenet/src/freenet/node/fcp/FCPConnectionOutputHandler.java 2007-08-15 17:20:20 UTC (rev 14703) @@ -3,6 +3,7 @@ * http://www.gnu.org/ for further details of the GPL. */ package freenet.node.fcp; +import java.io.BufferedOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.LinkedList; @@ -40,13 +41,14 @@ } private void realRun() throws IOException { - OutputStream os = handler.sock.getOutputStream(); + OutputStream os = new BufferedOutputStream(handler.sock.getOutputStream(), 4096); while(true) { FCPMessage msg; synchronized(outQueue) { while(true) { if(outQueue.isEmpty()) { if(handler.isClosed()) return; + os.flush(); try { outQueue.wait(10000); } catch (InterruptedException e) { @@ -59,7 +61,11 @@ } } msg.send(os); - if(handler.isClosed()) return; + if(handler.isClosed()) { + os.flush(); + os.close(); + return; + } } }
