Return-Path: X-Original-To: apmail-tomcat-dev-archive@www.apache.org Delivered-To: apmail-tomcat-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A80BD18637 for ; Tue, 27 Oct 2015 15:16:08 +0000 (UTC) Received: (qmail 45170 invoked by uid 500); 27 Oct 2015 15:16:08 -0000 Delivered-To: apmail-tomcat-dev-archive@tomcat.apache.org Received: (qmail 45089 invoked by uid 500); 27 Oct 2015 15:16:08 -0000 Mailing-List: contact dev-help@tomcat.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Tomcat Developers List" Delivered-To: mailing list dev@tomcat.apache.org Received: (qmail 45079 invoked by uid 99); 27 Oct 2015 15:16:08 -0000 Received: from Unknown (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 27 Oct 2015 15:16:08 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id AB2111809D4 for ; Tue, 27 Oct 2015 15:16:07 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.79 X-Spam-Level: * X-Spam-Status: No, score=1.79 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, T_RP_MATCHES_RCVD=-0.01] autolearn=disabled Received: from mx1-us-west.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id RuzeT8oytUp5 for ; Tue, 27 Oct 2015 15:16:06 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-us-west.apache.org (ASF Mail Server at mx1-us-west.apache.org) with ESMTP id 3C90E20751 for ; Tue, 27 Oct 2015 15:16:06 +0000 (UTC) Received: from svn01-us-west.apache.org (svn.apache.org [10.41.0.6]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 158DFE0183 for ; Tue, 27 Oct 2015 15:16:05 +0000 (UTC) Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id E39233A022D for ; Tue, 27 Oct 2015 15:16:04 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1710835 - in /tomcat/trunk/java/org/apache/tomcat/util/net: Nio2Endpoint.java SocketWrapperBase.java Date: Tue, 27 Oct 2015 15:16:04 -0000 To: dev@tomcat.apache.org From: remm@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20151027151604.E39233A022D@svn01-us-west.apache.org> Author: remm Date: Tue Oct 27 15:16:04 2015 New Revision: 1710835 URL: http://svn.apache.org/viewvc?rev=1710835&view=rev Log: - Add an extra async IO flag I used for testing. - Blocking should block. Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1710835&r1=1710834&r2=1710835&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Tue Oct 27 15:16:04 2015 @@ -954,6 +954,11 @@ public class Nio2Endpoint extends Abstra } } + @Override + public boolean hasAsyncIO() { + return false; + } + /** * Internal state tracker for scatter/gather operations. */ @@ -978,8 +983,8 @@ public class Nio2Endpoint extends Abstra this.check = check; this.handler = handler; } - private long nBytes = 0; - private CompletionState state = CompletionState.PENDING; + private volatile long nBytes = 0; + private volatile CompletionState state = CompletionState.PENDING; } private class ScatterReadCompletionHandler implements CompletionHandler> { @@ -1127,6 +1132,9 @@ public class Nio2Endpoint extends Abstra } else { throw new WritePendingException(); } + if (block && state.state == CompletionState.PENDING && writePending.tryAcquire(timeout, unit)) { + writePending.release(); + } } catch (InterruptedException e) { handler.failed(e, attachment); } 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=1710835&r1=1710834&r2=1710835&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Tue Oct 27 15:16:04 2015 @@ -662,6 +662,14 @@ public abstract class SocketWrapperBase< }; /** + * Allows using NIO2 style read/write only for connectors that can + * efficiently support it. + */ + public boolean hasAsyncIO() { + return false; + } + + /** * Scatter read. The completion handler will be called once some * data has been read or an error occurred. If a CompletionCheck * object has been provided, the completion handler will only be --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org For additional commands, e-mail: dev-help@tomcat.apache.org