From bd98af73645edc6ad1fc698242d80ecc3885d25e Mon Sep 17 00:00:00 2001 From: fhanik Date: Thu, 17 May 2007 15:43:49 +0000 Subject: [PATCH] minor optimizations git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@538977 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/catalina/tribes/io/ChannelData.java | 10 ++++++---- java/org/apache/catalina/tribes/membership/MemberImpl.java | 4 ++++ java/org/apache/catalina/tribes/transport/nio/NioReceiver.java | 6 ++++-- test/org/apache/catalina/tribes/test/TribesTestSuite.java | 1 + test/org/apache/catalina/tribes/test/transport/SocketSend.java | 2 +- 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/java/org/apache/catalina/tribes/io/ChannelData.java b/java/org/apache/catalina/tribes/io/ChannelData.java index eff5d508b..c8028d833 100644 --- a/java/org/apache/catalina/tribes/io/ChannelData.java +++ b/java/org/apache/catalina/tribes/io/ChannelData.java @@ -229,11 +229,13 @@ public class ChannelData implements ChannelMessage { offset += 4; //uniqueId length System.arraycopy(xbuf.getBytesDirect(),offset,data.uniqueId,0,data.uniqueId.length); offset += data.uniqueId.length; //uniqueId data - byte[] addr = new byte[XByteBuffer.toInt(xbuf.getBytesDirect(),offset)]; + //byte[] addr = new byte[XByteBuffer.toInt(xbuf.getBytesDirect(),offset)]; + int addrlen = XByteBuffer.toInt(xbuf.getBytesDirect(),offset); offset += 4; //addr length - System.arraycopy(xbuf.getBytesDirect(),offset,addr,0,addr.length); - data.setAddress(MemberImpl.getMember(addr)); - offset += addr.length; //addr data + //System.arraycopy(xbuf.getBytesDirect(),offset,addr,0,addr.length); + data.setAddress(MemberImpl.getMember(xbuf.getBytesDirect(),offset,addrlen)); + //offset += addr.length; //addr data + offset += addrlen; int xsize = XByteBuffer.toInt(xbuf.getBytesDirect(),offset); offset += 4; //xsize length System.arraycopy(xbuf.getBytesDirect(),offset,xbuf.getBytesDirect(),0,xsize); diff --git a/java/org/apache/catalina/tribes/membership/MemberImpl.java b/java/org/apache/catalina/tribes/membership/MemberImpl.java index fc40dad5a..0e5479a67 100644 --- a/java/org/apache/catalina/tribes/membership/MemberImpl.java +++ b/java/org/apache/catalina/tribes/membership/MemberImpl.java @@ -398,6 +398,10 @@ public class MemberImpl implements Member, java.io.Externalizable { return getMember(data,new MemberImpl()); } + public static MemberImpl getMember(byte[] data, int offset, int length) { + return getMember(data,offset,length,new MemberImpl()); + } + /** * Return the name of this object * @return a unique name to the cluster diff --git a/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java b/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java index 8abf4af1e..a7ba368f9 100644 --- a/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java +++ b/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java @@ -175,13 +175,14 @@ public class NioReceiver extends ReceiverBase implements Runnable, ChannelReceiv try { key.channel().close(); } catch (IOException e) { if (log.isDebugEnabled()) log.debug("", e); } } - + protected long lastCheck = System.currentTimeMillis(); protected void socketTimeouts() { + long now = System.currentTimeMillis(); + if ( (now-lastCheck) < getSelectorTimeout() ) return; //timeout Selector tmpsel = selector; Set keys = (isListening()&&tmpsel!=null)?tmpsel.keys():null; if ( keys == null ) return; - long now = System.currentTimeMillis(); for (Iterator iter = keys.iterator(); iter.hasNext(); ) { SelectionKey key = (SelectionKey) iter.next(); try { @@ -215,6 +216,7 @@ public class NioReceiver extends ReceiverBase implements Runnable, ChannelReceiv cancelledKey(key); } } + lastCheck = System.currentTimeMillis(); } diff --git a/test/org/apache/catalina/tribes/test/TribesTestSuite.java b/test/org/apache/catalina/tribes/test/TribesTestSuite.java index f88d5539d..bb8ad58cb 100644 --- a/test/org/apache/catalina/tribes/test/TribesTestSuite.java +++ b/test/org/apache/catalina/tribes/test/TribesTestSuite.java @@ -35,6 +35,7 @@ public class TribesTestSuite suite.addTestSuite(org.apache.catalina.tribes.test.membership.TestMemberArrival.class); suite.addTestSuite(org.apache.catalina.tribes.test.membership.TestTcpFailureDetector.class); suite.addTestSuite(org.apache.catalina.tribes.test.channel.TestDataIntegrity.class); + suite.addTestSuite(org.apache.catalina.tribes.test.interceptors.TestOrderInterceptor.class); return suite; } } diff --git a/test/org/apache/catalina/tribes/test/transport/SocketSend.java b/test/org/apache/catalina/tribes/test/transport/SocketSend.java index 5243391e0..aa2d6c9a7 100644 --- a/test/org/apache/catalina/tribes/test/transport/SocketSend.java +++ b/test/org/apache/catalina/tribes/test/transport/SocketSend.java @@ -50,7 +50,7 @@ public class SocketSend { boolean first = true; int count = 0; DecimalFormat df = new DecimalFormat("##.00"); - while ( count<100000 ) { + while ( count<1000000 ) { if ( first ) { first = false; start = System.currentTimeMillis();} out.write(buf,0,buf.length); mb += ( (double) buf.length) / 1024 / 1024; -- 2.11.0