minor optimizations
authorfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Thu, 17 May 2007 15:43:49 +0000 (15:43 +0000)
committerfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Thu, 17 May 2007 15:43:49 +0000 (15:43 +0000)
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
java/org/apache/catalina/tribes/membership/MemberImpl.java
java/org/apache/catalina/tribes/transport/nio/NioReceiver.java
test/org/apache/catalina/tribes/test/TribesTestSuite.java
test/org/apache/catalina/tribes/test/transport/SocketSend.java

index eff5d50..c8028d8 100644 (file)
@@ -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);
index fc40dad..0e5479a 100644 (file)
@@ -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
index 8abf4af..a7ba368 100644 (file)
@@ -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();
     }
 
 
index f88d553..bb8ad58 100644 (file)
@@ -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;
     }
 }
index 5243391..aa2d6c9 100644 (file)
@@ -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;