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();
}