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 2011/04/13 09:37:27 UTC
svn commit: r1091677 - in
/mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp:
NioSelectorProcessor.java nio/NioTcpServer.java
Author: elecharny
Date: Wed Apr 13 07:37:27 2011
New Revision: 1091677
URL: http://svn.apache.org/viewvc?rev=1091677&view=rev
Log:
Minor refactoring
Modified:
mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java
mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/nio/NioTcpServer.java
Modified: mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java
URL: http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java?rev=1091677&r1=1091676&r2=1091677&view=diff
==============================================================================
--- mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java (original)
+++ mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java Wed Apr 13 07:37:27 2011
@@ -64,16 +64,16 @@ public class NioSelectorProcessor implem
private Selector selector;
// new binded server to add to the selector
- private final Queue<ServerSocketChannel> serverToAdd = new ConcurrentLinkedQueue<ServerSocketChannel>();
+ private final Queue<ServerSocketChannel> serversToAdd = new ConcurrentLinkedQueue<ServerSocketChannel>();
// server to remove of the selector
- private final Queue<ServerSocketChannel> serverToRemove = new ConcurrentLinkedQueue<ServerSocketChannel>();
+ private final Queue<ServerSocketChannel> serversToRemove = new ConcurrentLinkedQueue<ServerSocketChannel>();
// new session freshly accepted, placed here for being added to the selector
- private final Queue<IoSession> sessionToConnect = new ConcurrentLinkedQueue<IoSession>();
+ private final Queue<IoSession> sessionsToConnect = new ConcurrentLinkedQueue<IoSession>();
// session to be removed of the selector
- private final Queue<IoSession> sessionToClose = new ConcurrentLinkedQueue<IoSession>();
+ private final Queue<IoSession> sessionsToClose = new ConcurrentLinkedQueue<IoSession>();
/**
* Add a bound server channel for starting accepting new client connections.
@@ -82,7 +82,7 @@ public class NioSelectorProcessor implem
*/
public void add(ServerSocketChannel serverChannel) {
log.debug("adding a server channel " + serverChannel);
- serverToAdd.add(serverChannel);
+ serversToAdd.add(serverChannel);
wakeupWorker();
}
@@ -119,7 +119,7 @@ public class NioSelectorProcessor implem
channel.close();
serverSocketChannels.remove(channel);
log.debug("removing a server channel " + channel);
- serverToRemove.add(channel);
+ serversToRemove.add(channel);
wakeupWorker();
}
@@ -129,6 +129,10 @@ public class NioSelectorProcessor implem
}
+ /**
+ * The worker processing incoming session creation and destruction requests.
+ * It will also bind new servers.
+ */
private class SelectorWorker extends Thread {
// map for finding the keys associated with a given server
private Map<ServerSocketChannel, SelectionKey> serverKey = new HashMap<ServerSocketChannel, SelectionKey>();
@@ -148,10 +152,11 @@ public class NioSelectorProcessor implem
for (;;) {
try {
// pop server sockets for removing
- if (serverToRemove.size() > 0) {
- while (!serverToRemove.isEmpty()) {
- ServerSocketChannel channel = serverToRemove.poll();
+ if (serversToRemove.size() > 0) {
+ while (!serversToRemove.isEmpty()) {
+ ServerSocketChannel channel = serversToRemove.poll();
SelectionKey key = serverKey.remove(channel);
+
if (key == null) {
log.error("The server socket was already removed of the selector");
} else {
@@ -161,9 +166,9 @@ public class NioSelectorProcessor implem
}
// pop new server sockets for accepting
- if (serverToAdd.size() > 0) {
- while (!serverToAdd.isEmpty()) {
- ServerSocketChannel channel = serverToAdd.poll();
+ if (serversToAdd.size() > 0) {
+ while (!serversToAdd.isEmpty()) {
+ ServerSocketChannel channel = serversToAdd.poll();
SelectionKey key = channel.register(selector,
SelectionKey.OP_ACCEPT);
key.attach(channel);
@@ -172,7 +177,7 @@ public class NioSelectorProcessor implem
log.debug("selecting...");
int readyCount = selector.select(SELECT_TIMEOUT);
- log.debug("... done selecting : " + readyCount);
+ log.debug("... done selecting : {}", readyCount);
if (readyCount > 0) {
// process selected keys
Modified: mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/nio/NioTcpServer.java
URL: http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/nio/NioTcpServer.java?rev=1091677&r1=1091676&r2=1091677&view=diff
==============================================================================
--- mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/nio/NioTcpServer.java (original)
+++ mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/nio/NioTcpServer.java Wed Apr 13 07:37:27 2011
@@ -32,7 +32,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * TODO
+ * This class implements a TCP NIO based server.
*
* @author <a href="http://mina.apache.org">Apache MINA Project</a>
*/