You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by jv...@apache.org on 2007/07/26 10:01:44 UTC

svn commit: r559739 - in /mina/sandbox/jvermillard/apr/src: main/java/org/apache/mina/transport/apr/APRIoProcessor.java test/java/org/apache/mina/transport/apr/TestCnx.java

Author: jvermillard
Date: Thu Jul 26 01:01:42 2007
New Revision: 559739

URL: http://svn.apache.org/viewvc?view=rev&rev=559739
Log:
trying to make polling less cpu intensive

Modified:
    mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRIoProcessor.java
    mina/sandbox/jvermillard/apr/src/test/java/org/apache/mina/transport/apr/TestCnx.java

Modified: mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRIoProcessor.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRIoProcessor.java?view=diff&rev=559739&r1=559738&r2=559739
==============================================================================
--- mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRIoProcessor.java (original)
+++ mina/sandbox/jvermillard/apr/src/main/java/org/apache/mina/transport/apr/APRIoProcessor.java Thu Jul 26 01:01:42 2007
@@ -61,7 +61,7 @@
 		try {
 
 			// TODO : optimize/parametrize those values
-			pollset = Poll.create(32, pool, 0, 10000000);
+			pollset = Poll.create(32, pool, Poll.APR_POLLSET_THREADSAFE, 10000000);
 		} catch (Error e) {
 			logger.error("APR Error : " + e.getDescription(), e);
 			// TODO : send that to the good logger
@@ -89,22 +89,34 @@
 	}
 
 	void flush(APRSessionImpl session) {
-		scheduleFlush(session);
+		//scheduleFlush(session);
+
+		// add the descriptor as POLLOUT
+		
+		int rv = Poll.add(pollset, session.getAPRSocket(), Poll.APR_POLLIN
+		| Poll.APR_POLLOUT);
+		if (rv == Status.APR_SUCCESS) {
+			System.err.println("pollout Ok");
+		} else {
+			System.err.println("");
+		}
+
 	}
 
 	private void scheduleRemove(APRSessionImpl session) {
 		removingSessions.offer(session);
 	}
 
+//	private void scheduleFlush(APRSessionImpl session) {
+//		flushingSessions.offer(session);
+//	}
+
+	
 	// TODO : do something with traffic control 
 	private void scheduleTrafficControl(APRSessionImpl session) {
 		trafficControllingSessions.offer(session);
 	}
 
-	private void scheduleFlush(APRSessionImpl session) {
-		flushingSessions.offer(session);
-	}
-
 	private void doAddNew() {
 		for (;;) {
 			APRSessionImpl session = newSessions.poll();
@@ -118,7 +130,7 @@
 			System.err.println("pollset : "+pollset);
 			System.err.println("Socket : "+session.getAPRSocket());
 			int rv = Poll.add(pollset, session.getAPRSocket(), Poll.APR_POLLIN
-					| Poll.APR_POLLOUT);
+					/*| Poll.APR_POLLOUT*/);
 			if (rv == Status.APR_SUCCESS) {
 				System.out.println("Added worker to pollset");
 				managedSessions.put(session.getAPRSocket(), session);

Modified: mina/sandbox/jvermillard/apr/src/test/java/org/apache/mina/transport/apr/TestCnx.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/apr/src/test/java/org/apache/mina/transport/apr/TestCnx.java?view=diff&rev=559739&r1=559738&r2=559739
==============================================================================
--- mina/sandbox/jvermillard/apr/src/test/java/org/apache/mina/transport/apr/TestCnx.java (original)
+++ mina/sandbox/jvermillard/apr/src/test/java/org/apache/mina/transport/apr/TestCnx.java Thu Jul 26 01:01:42 2007
@@ -1,6 +1,8 @@
 package org.apache.mina.transport.apr;
 
 import java.net.InetSocketAddress;
+import java.nio.charset.Charset;
+import java.nio.charset.CharsetDecoder;
 
 import junit.framework.TestCase;
 
@@ -28,6 +30,9 @@
 
 			public void messageReceived(IoSession session, Object message) throws Exception {
 				System.err.println("Rcvd : "+message);
+				if(message instanceof ByteBuffer) {
+					System.err.println("TXT : "+((ByteBuffer)message).getString(Charset.defaultCharset().newDecoder()));
+				}
 				
 			}
 
@@ -58,8 +63,9 @@
 		f.awaitUninterruptibly();
 		
 		assertTrue(f.getSession().isConnected());
-		//System.err.println("writing hello");
-		//f.getSession().write(  ByteBuffer.wrap("HELLO\n".getBytes()) );
+		Thread.sleep(1000);
+		System.err.println("writing hello");
+		f.getSession().write(  ByteBuffer.wrap("HELLO\n".getBytes()).rewind() );
 		
 		Thread.sleep(4000);
 		System.err.println("Done");