Author: elecharny Date: Mon Oct 27 08:16:48 2008 New Revision: 708218 URL: http://svn.apache.org/viewvc?rev=708218&view=rev Log: o Removed some dead code o Added a select() method without timeout for the IoProcessor o Replaced a call to select(1000) by a call to select(), as there are no reason we should stop the select process every second.
Modified: mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramAcceptor.java mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java Modified: mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java?rev=708218&r1=708217&r2=708218&view=diff ============================================================================== --- mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java (original) +++ mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingConnectionlessIoAcceptor.java Mon Oct 27 08:16:48 2008 @@ -114,6 +114,7 @@ protected abstract void init() throws Exception; protected abstract void destroy() throws Exception; + protected abstract int select() throws Exception; protected abstract int select(int timeout) throws Exception; protected abstract void wakeup(); protected abstract Iterator<H> selectedHandles(); @@ -333,7 +334,7 @@ while (selectable) { try { - int selected = select(1000); + int selected = select(); nHandles += registerHandles(); Modified: mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java?rev=708218&r1=708217&r2=708218&view=diff ============================================================================== --- mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java (original) +++ mina/trunk/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java Mon Oct 27 08:16:48 2008 @@ -187,6 +187,13 @@ protected abstract int select(int timeout) throws Exception; /** + * poll those sessions forever + * @return The number of session ready for read or for write + * @throws Exception if some low level IO error occurs + */ + protected abstract int select() throws Exception; + + /** * Say if the list of [EMAIL PROTECTED] IoSession} polled by this [EMAIL PROTECTED] IoProcessor} * is empty * @return true if at least a session is managed by this [EMAIL PROTECTED] IoProcessor} @@ -340,14 +347,6 @@ * [EMAIL PROTECTED] */ public final void flush(T session) { - // The following optimization has been disabled because it can cause StackOverflowError. - //if (Thread.currentThread() == workerThread) { - // // Bypass the queue if called from the worker thread itself - // // (i.e. single thread model). - // flushNow(session, System.currentTimeMillis()); - // return; - //} - boolean needsWakeup = flushingSessions.isEmpty(); if (scheduleFlush(session) && needsWakeup) { wakeup(); @@ -533,7 +532,8 @@ private void process() throws Exception { for (Iterator<T> i = selectedSessions(); i.hasNext();) { - process(i.next()); + T session = i.next(); + process(session); i.remove(); } } Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramAcceptor.java URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramAcceptor.java?rev=708218&r1=708217&r2=708218&view=diff ============================================================================== --- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramAcceptor.java (original) +++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramAcceptor.java Mon Oct 27 08:16:48 2008 @@ -170,6 +170,11 @@ } @Override + protected int select() throws Exception { + return selector.select(); + } + + @Override protected int select(int timeout) throws Exception { return selector.select(timeout); } Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java?rev=708218&r1=708217&r2=708218&view=diff ============================================================================== --- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java (original) +++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioProcessor.java Mon Oct 27 08:16:48 2008 @@ -70,6 +70,11 @@ } @Override + protected int select() throws Exception { + return selector.select(); + } + + @Override protected boolean isSelectorEmpty() { return selector.keys().isEmpty(); }