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");