You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by fh...@apache.org on 2006/10/25 16:31:25 UTC
svn commit: r467669 - in /tomcat/tc6.0.x/trunk/java/org/apache:
coyote/http11/InternalNioInputBuffer.java tomcat/util/net/NioEndpoint.java
Author: fhanik
Date: Wed Oct 25 07:31:25 2006
New Revision: 467669
URL: http://svn.apache.org/viewvc?view=rev&rev=467669
Log:
Code clean up, last pieces to make is a the KeyAttachment object and the Runnable used for addEvent to be non GC objects, as these events happen very frequently
Modified:
tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java
tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
Modified: tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java?view=diff&rev=467669&r1=467668&r2=467669
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java Wed Oct 25 07:31:25 2006
@@ -594,31 +594,6 @@
}
}
- private void addToReadQueue(final SelectionKey key, final KeyAttachment att) {
- att.setWakeUp(true);
- att.getPoller().addEvent(
- new Runnable() {
- public void run() {
- try {
- if (key != null) {
- key.interestOps(SelectionKey.OP_READ);
- att.interestOps(SelectionKey.OP_READ);
- }
- } catch (CancelledKeyException ckx) {
- try {
- if ( att != null ) {
- att.setError(true); //set to collect this socket immediately
- att.setWakeUp(false);
- }
- try {socket.close();}catch (Exception ignore){}
- if ( socket.isOpen() ) socket.close(true);
- } catch (Exception ignore) {}
- }
- }
- });
- }
-
-
/**
* Parse the HTTP headers.
*/
Modified: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?view=diff&rev=467669&r1=467668&r2=467669
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Wed Oct 25 07:31:25 2006
@@ -156,6 +156,7 @@
SelectionKey key = sel!=null?socket.getIOChannel().keyFor(sel):null;
KeyAttachment att = key!=null?(KeyAttachment)key.attachment():null;
if ( att!=null ) att.reset();
+ if ( key!=null ) key.attach(null);
//avoid over growing our cache or add after we have stopped
if ( running && (!paused) && (size() < socketProperties.getDirectBufferPool()) ) return super.offer(socket);
else return false;
@@ -986,9 +987,6 @@
}
public void addEvent(Runnable event) {
- //synchronized (events) {
- // events.add(event);
- //}
events.offer(event);
if ( wakeupCounter.incrementAndGet() < 3 ) selector.wakeup();
}
@@ -1004,7 +1002,6 @@
public void add(final NioChannel socket) {
final SelectionKey key = socket.getIOChannel().keyFor(selector);
final KeyAttachment att = (KeyAttachment)key.attachment();
- if ( att != null ) att.setWakeUp(false);
Runnable r = new Runnable() {
public void run() {
try {
@@ -1137,10 +1134,7 @@
attachment.interestOps(0);
NioChannel channel = attachment.getChannel();
if (sk.isReadable() || sk.isWritable() ) {
- if ( attachment.getWakeUp() ) {
- attachment.setWakeUp(false);
- synchronized (attachment.getMutex()) {attachment.getMutex().notifyAll();}
- } else if ( attachment.getComet() ) {
+ if ( attachment.getComet() ) {
if (!processSocket(channel, SocketStatus.OPEN))
processSocket(channel, SocketStatus.DISCONNECT);
} else {
@@ -1211,7 +1205,6 @@
}
public void reset() {
//mutex = new Object();
- wakeUp = false;
lastAccess = System.currentTimeMillis();
currentAccess = false;
comet = false;
@@ -1228,8 +1221,6 @@
public boolean getComet() { return comet; }
public boolean getCurrentAccess() { return currentAccess; }
public void setCurrentAccess(boolean access) { currentAccess = access; }
- public boolean getWakeUp() { return wakeUp; }
- public void setWakeUp(boolean wakeUp) { this.wakeUp = wakeUp; }
public Object getMutex() {return mutex;}
public void setTimeout(long timeout) {this.timeout = timeout;}
public long getTimeout() {return this.timeout;}
@@ -1242,7 +1233,6 @@
public int interestOps() { return interestOps;}
public int interestOps(int ops) { this.interestOps = ops; return ops; }
protected Object mutex = new Object();
- protected boolean wakeUp = false;
protected long lastAccess = System.currentTimeMillis();
protected boolean currentAccess = false;
protected boolean comet = false;
@@ -1417,11 +1407,9 @@
} catch (CancelledKeyException ckx) {
try {
if ( fk != null && fk.attachment() != null ) {
-
ka.setError(true); //set to collect this socket immediately
try {ka.getChannel().getIOChannel().socket().close();}catch(Exception ignore){}
try {ka.getChannel().close();}catch(Exception ignore){}
- ka.setWakeUp(false);
}
} catch (Exception ignore) {}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org