You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2008/10/27 16:16:49 UTC

svn commit: r708218 - in /mina/trunk/core/src/main/java/org/apache/mina: core/polling/ transport/socket/nio/

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 {@link IoSession} polled by this {@link IoProcessor} 
      * is empty
      * @return true if at least a session is managed by this {@link IoProcessor}
@@ -340,14 +347,6 @@
      * {@inheritDoc}
      */
     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();
     }