directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From trus...@apache.org
Subject svn commit: r109796 - /incubator/directory/seda/branches/trustin/src/examples/org/apache/netty/examples/echo/server/Main.java /incubator/directory/seda/branches/trustin/src/java/org/apache/netty/downstream/impl/tcp/TcpIoProcessor.java
Date Sat, 04 Dec 2004 12:48:12 GMT
Author: trustin
Date: Sat Dec  4 04:48:12 2004
New Revision: 109796

URL: http://svn.apache.org/viewcvs?view=rev&rev=109796
Log:
 * Fixed: 100% CPU consumption
 * examples.echo.server.Main prints out the port number now.
Modified:
   incubator/directory/seda/branches/trustin/src/examples/org/apache/netty/examples/echo/server/Main.java
   incubator/directory/seda/branches/trustin/src/java/org/apache/netty/downstream/impl/tcp/TcpIoProcessor.java

Modified: incubator/directory/seda/branches/trustin/src/examples/org/apache/netty/examples/echo/server/Main.java
Url: http://svn.apache.org/viewcvs/incubator/directory/seda/branches/trustin/src/examples/org/apache/netty/examples/echo/server/Main.java?view=diff&rev=109796&p1=incubator/directory/seda/branches/trustin/src/examples/org/apache/netty/examples/echo/server/Main.java&r1=109795&p2=incubator/directory/seda/branches/trustin/src/examples/org/apache/netty/examples/echo/server/Main.java&r2=109796
==============================================================================
--- incubator/directory/seda/branches/trustin/src/examples/org/apache/netty/examples/echo/server/Main.java
(original)
+++ incubator/directory/seda/branches/trustin/src/examples/org/apache/netty/examples/echo/server/Main.java
Sat Dec  4 04:48:12 2004
@@ -15,8 +15,11 @@
  * @version $Rev$, $Date$, 
  */
 public class Main {
+	private static final int PORT = 8080;
+
 	public static void main(String[] args) throws Exception {
 		Acceptor acceptor = new TcpAcceptor();
-		acceptor.bind(new InetSocketAddress(8080), new EchoServerSessionHandler());
+		acceptor.bind(new InetSocketAddress(PORT), new EchoServerSessionHandler());
+		System.out.println("Listening on port " + PORT);
 	}
 }

Modified: incubator/directory/seda/branches/trustin/src/java/org/apache/netty/downstream/impl/tcp/TcpIoProcessor.java
Url: http://svn.apache.org/viewcvs/incubator/directory/seda/branches/trustin/src/java/org/apache/netty/downstream/impl/tcp/TcpIoProcessor.java?view=diff&rev=109796&p1=incubator/directory/seda/branches/trustin/src/java/org/apache/netty/downstream/impl/tcp/TcpIoProcessor.java&r1=109795&p2=incubator/directory/seda/branches/trustin/src/java/org/apache/netty/downstream/impl/tcp/TcpIoProcessor.java&r2=109796
==============================================================================
--- incubator/directory/seda/branches/trustin/src/java/org/apache/netty/downstream/impl/tcp/TcpIoProcessor.java
(original)
+++ incubator/directory/seda/branches/trustin/src/java/org/apache/netty/downstream/impl/tcp/TcpIoProcessor.java
Sat Dec  4 04:48:12 2004
@@ -166,6 +166,7 @@
 		Iterator it = selectedKeys.iterator();
 		while (it.hasNext()) {
 			SelectionKey key = (SelectionKey) it.next();
+			it.remove();
 			TcpSession session = (TcpSession) key.attachment();
 			if (key.isReadable()) {
 				read(session);
@@ -173,6 +174,7 @@
 				scheduleFlush(session);
 			}
 		}
+		selectedKeys.clear();
 	}
 	
 	private void read(TcpSession session) {
@@ -196,14 +198,18 @@
 			}
 			
 			if (ret < 0) {
-				synchronized (removingSessions) {
-					removingSessions.add(session);
-				}
+				scheduleRemove(session);
 			}
 		} catch (IOException e) {
 			fireExceptionCaught(session, e);
 		}
 	}
+	
+	private void scheduleRemove(TcpSession session) {
+		synchronized (removingSessions) {
+			removingSessions.add(session);
+		}
+	}
 
 	private void scheduleFlush(TcpSession session) {
 		session.getSelectionKey().interestOps(SelectionKey.OP_READ);
@@ -238,8 +244,6 @@
 			synchronized (writeBuf) {
 				writeBuf.flip();
 				int nBytes = ch.write(writeBuf);
-				writeBuf.compact();
-				
 				if (nBytes > 0)
 					session.increaseWrittenBytes(nBytes);
 
@@ -248,6 +252,8 @@
 					// Kernel buffer is full
 					session.getSelectionKey().interestOps(SelectionKey.OP_READ | SelectionKey.OP_WRITE);
 				}
+
+				writeBuf.compact();
 			}
 		} catch (IOException e) {
 			fireExceptionCaught(session, e);
@@ -281,6 +287,9 @@
 	private void fireExceptionCaught(TcpSession session, Throwable cause) {
 		try {
 			session.getHandler().exceptionCaught(session, cause);
+			if (cause instanceof IOException) {
+				scheduleRemove(session);
+			}
 		} catch (Throwable t) {
 			log.error("Exception from excaptionCaught.", t);
 		}

Mime
View raw message