You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2014/11/12 11:48:36 UTC
svn commit: r1638743 -
/tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java
Author: markt
Date: Wed Nov 12 10:48:36 2014
New Revision: 1638743
URL: http://svn.apache.org/r1638743
Log:
Add new lastAsyncStart property which is not currently used.
Modified:
tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java?rev=1638743&r1=1638742&r2=1638743&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Wed Nov 12 10:48:36 2014
@@ -31,6 +31,7 @@ public abstract class SocketWrapperBase<
private final AbstractEndpoint<E> endpoint;
private volatile long lastAccess = System.currentTimeMillis();
+ private volatile long lastAsyncStart = 0;
private long timeout = -1;
private boolean error = false;
private volatile int keepAliveLeft = 100;
@@ -84,7 +85,33 @@ public abstract class SocketWrapperBase<
}
public boolean isAsync() { return async; }
- public void setAsync(boolean async) { this.async = async; }
+ /**
+ * Sets the async flag for this connection. If this call causes the
+ * connection to transition from non-async to async then the lastAsyncStart
+ * property will be set using the current time. This property is used as the
+ * start time when calculating the async timeout. As per the Servlet spec
+ * the async timeout applies once the dispatch where startAsync() was called
+ * has returned to the container (which is when this method is currently
+ * called).
+ *
+ * @param async The new value of for the async flag
+ */
+ public void setAsync(boolean async) {
+ if (!this.async && async) {
+ lastAsyncStart = System.currentTimeMillis();
+ }
+ this.async = async;
+ }
+ /**
+ * Obtain the time that this connection last transitioned to async
+ * processing.
+ *
+ * @return The time (as returned by {@link System#currentTimeMillis()}) that
+ * this connection last transitioned to async
+ */
+ public long getLastAsyncStart() {
+ return lastAsyncStart;
+ }
public boolean isUpgraded() { return upgraded; }
public void setUpgraded(boolean upgraded) { this.upgraded = upgraded; }
public boolean isSecure() { return secure; }
@@ -164,6 +191,7 @@ public abstract class SocketWrapperBase<
error = false;
keepAliveLeft = 100;
lastAccess = System.currentTimeMillis();
+ lastAsyncStart = 0;
localAddr = null;
localName = null;
localPort = -1;
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org