<div dir="ltr"><div>Hi, Jason.</div><div><br></div><div>Thank you for your explanation. I got it.</div><div><br></div><div>[FYI]</div><div>&gt;&gt;&gt; I tried with Safari and it works as expected.</div><div><br></div><div>
I checked IE8(sorry for legacy...) also don&#39;t reuse connection.</div><div><br></div><div>===</div><div>Yoshimasa Tanabe</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Feb 20, 2014 at 7:47 AM, Jason Greene <span dir="ltr">&lt;<a href="mailto:jason.greene@redhat.com" target="_blank">jason.greene@redhat.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">It all depends on how the web browser manages connections. Some prefer to reuse aggressively and others don&rsquo;t.<br>
<br>
The way the undertow architecture works, is that every connection is assigned to an I/O thread for as long as that connection is alive. When there is data available the I/O thread will wake up and process that data, and trigger a call to your handler, and move on to other ready connections.<br>

<div class="HOEnZb"><div class="h5"><br>
On Feb 19, 2014, at 11:53 AM, Mikhail Tyamin &lt;<a href="mailto:mikhail.tiamine@gmail.com">mikhail.tiamine@gmail.com</a>&gt; wrote:<br>
<br>
&gt; Hi,<br>
&gt;<br>
&gt; you are right! I tried with Safari and it works as expected.<br>
&gt;<br>
&gt; Maybe somebody from undertow&#39;s team could explain why?<br>
&gt;<br>
&gt; Best,<br>
&gt; Mikhail<br>
&gt;<br>
&gt; Best,<br>
&gt; Mikhail<br>
&gt;<br>
&gt;<br>
&gt; 2014-02-18 16:50 GMT+02:00 lanabe &lt;<a href="mailto:lanabe.lanabe@gmail.com">lanabe.lanabe@gmail.com</a>&gt;:<br>
&gt; Hi, Mikhail.<br>
&gt;<br>
&gt; I got the same log.<br>
&gt;<br>
&gt; [environment]<br>
&gt; Undertow: io.undertow:undertow-core:1.0.0.Final<br>
&gt; OS: Fedora19(64bit)<br>
&gt; JDK: OpenJDK 1.7.0_51<br>
&gt; Client: Google Chrome 32.0.1700.107, Firefox 26.0<br>
&gt;<br>
&gt; ---<br>
&gt; Thread #XNIO-1 I/O-1 is I/O : handle this<br>
&gt; Thread #XNIO-1 task-1 Start waiting<br>
&gt; Thread #XNIO-1 task-1 Finish waiting<br>
&gt;<br>
&gt; Thread #XNIO-1 I/O-1 is I/O : handle this<br>
&gt; Thread #XNIO-1 task-2 Start waiting<br>
&gt; Thread #XNIO-1 task-2 Finish waiting<br>
&gt;<br>
&gt; Thread #XNIO-1 I/O-1 is I/O : handle this<br>
&gt; Thread #XNIO-1 task-3 Start waiting<br>
&gt; Thread #XNIO-1 task-3 Finish waiting<br>
&gt; ---<br>
&gt;<br>
&gt; but, I got the expected following log by using curl.<br>
&gt; ---<br>
&gt; Thread #XNIO-1 I/O-1 is I/O : handle this<br>
&gt; Thread #XNIO-1 task-1 Start waiting<br>
&gt; Thread #XNIO-1 I/O-1 is I/O : handle this<br>
&gt; Thread #XNIO-1 task-2 Start waiting<br>
&gt; Thread #XNIO-1 I/O-2 is I/O : handle this<br>
&gt; Thread #XNIO-1 task-3 Start waiting<br>
&gt; Thread #XNIO-1 task-1 Finish waiting<br>
&gt;<br>
&gt; Thread #XNIO-1 task-2 Finish waiting<br>
&gt;<br>
&gt; Thread #XNIO-1 task-3 Finish waiting<br>
&gt; ---<br>
&gt;<br>
&gt; hmm...Does it depends on browser settings?<br>
&gt;<br>
&gt; Yoshimasa Tanabe<br>
&gt;<br>
&gt;<br>
&gt; On Tue, Feb 18, 2014 at 3:10 PM, Mikhail Tyamin &lt;<a href="mailto:mikhail.tiamine@gmail.com">mikhail.tiamine@gmail.com</a>&gt; wrote:<br>
&gt; Hi,<br>
&gt;<br>
&gt; I am pretty sure, 15 sec. delay is enough to open additional browsers windows ;-)<br>
&gt;<br>
&gt; I try to run code with io.undertow:undertow-core:1.0.0.Final on mac with OS X 10.9.1 &nbsp; with jdk 1.7.0_51.<br>
&gt;<br>
&gt; So, could anybody reproduce this issue or give me feedback where is my error?<br>
&gt;<br>
&gt; Best,<br>
&gt; Mikhail<br>
&gt;<br>
&gt;<br>
&gt; 2014-02-18 5:22 GMT+02:00 Stuart Douglas &lt;<a href="mailto:sdouglas@redhat.com">sdouglas@redhat.com</a>&gt;:<br>
&gt;<br>
&gt; Are you sure the requests are actually being made simultaneously? That code should definitely work.<br>
&gt;<br>
&gt; Stuart<br>
&gt;<br>
&gt;<br>
&gt; ----- Original Message -----<br>
&gt; &gt; From: &quot;Mikhail Tyamin&quot; &lt;<a href="mailto:mikhail.tiamine@gmail.com">mikhail.tiamine@gmail.com</a>&gt;<br>
&gt; &gt; To: <a href="mailto:undertow-dev@lists.jboss.org">undertow-dev@lists.jboss.org</a><br>
&gt; &gt; Sent: Monday, 17 February, 2014 3:03:41 PM<br>
&gt; &gt; Subject: [undertow-dev] what I do wrong?<br>
&gt; &gt;<br>
&gt; &gt; Hello guys,<br>
&gt; &gt;<br>
&gt; &gt; could you help me a little bit with Undertow?<br>
&gt; &gt;<br>
&gt; &gt; I follow all instructions in Undertown&#39;s poor documentation. So here is the<br>
&gt; &gt; class :<br>
&gt; &gt;<br>
&gt; &gt; public class HelloWorldServer {<br>
&gt; &gt;<br>
&gt; &gt; public static void main(String... args) {<br>
&gt; &gt; Undertow server = Undertow.builder()<br>
&gt; &gt; .addHttpListener(8080, &quot;localhost&quot;)<br>
&gt; &gt; .setHandler(new HttpHandler() {<br>
&gt; &gt; @Override<br>
&gt; &gt; public void handleRequest(final HttpServerExchange exchange) throws Exception<br>
&gt; &gt; {<br>
&gt; &gt; if (exchange.isInIoThread()) {<br>
&gt; &gt; System.out.println(&quot;Thread #&quot; + Thread.currentThread().getName() + &quot; is I/O :<br>
&gt; &gt; handle this&quot;);<br>
&gt; &gt; exchange.dispatch(this);<br>
&gt; &gt; return;<br>
&gt; &gt; }<br>
&gt; &gt;<br>
&gt; &gt; //[1]<br>
&gt; &gt; System.out.println(&quot;Thread #&quot; + Thread.currentThread().getName() + &quot; Start<br>
&gt; &gt; waiting&quot;);<br>
&gt; &gt; Thread.sleep(15000);<br>
&gt; &gt; System.out.println(&quot;Thread #&quot; + Thread.currentThread().getName() + &quot; Finish<br>
&gt; &gt; waiting&quot;);<br>
&gt; &gt;<br>
&gt; &gt; System.out.println();<br>
&gt; &gt;<br>
&gt; &gt; exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, &quot;text/plain&quot;);<br>
&gt; &gt; exchange.getResponseSender().send(&quot;Hello world from thread &quot; +<br>
&gt; &gt; Thread.currentThread().getId());<br>
&gt; &gt; //[2]<br>
&gt; &gt; }<br>
&gt; &gt; }).build();<br>
&gt; &gt;<br>
&gt; &gt; server.start();<br>
&gt; &gt; }<br>
&gt; &gt; }<br>
&gt; &gt;<br>
&gt; &gt; When I start it and make three http get request simultaneously I can see this<br>
&gt; &gt; output in console :<br>
&gt; &gt;<br>
&gt; &gt; Thread #XNIO-1 I/O-1 is I/O : handle this<br>
&gt; &gt; Thread #XNIO-1 task-1 Start waiting<br>
&gt; &gt; Thread #XNIO-1 task-1 Finish waiting<br>
&gt; &gt;<br>
&gt; &gt; Thread #XNIO-1 I/O-1 is I/O : handle this<br>
&gt; &gt; Thread #XNIO-1 task-2 Start waiting<br>
&gt; &gt; Thread #XNIO-1 task-2 Finish waiting<br>
&gt; &gt;<br>
&gt; &gt; Thread #XNIO-1 I/O-1 is I/O : handle this<br>
&gt; &gt; Thread #XNIO-1 task-3 Start waiting<br>
&gt; &gt; Thread #XNIO-1 task-3 Finish waiting<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; I think that code beetween //[1] and //[2] should perform in separate thread<br>
&gt; &gt; (and as we can see from the console it really does), but why the main I/O<br>
&gt; &gt; thread are waiting and does not handle other requests?<br>
&gt; &gt;<br>
&gt; &gt; So if my code is correct than it means that Undertow could handle one request<br>
&gt; &gt; in time...<br>
&gt; &gt;<br>
&gt; &gt; What I do wrong?<br>
&gt; &gt;<br>
&gt; &gt; Best,<br>
&gt; &gt; Mikhail<br>
&gt; &gt;<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; undertow-dev mailing list<br>
&gt; &gt; <a href="mailto:undertow-dev@lists.jboss.org">undertow-dev@lists.jboss.org</a><br>
&gt; &gt; <a href="https://lists.jboss.org/mailman/listinfo/undertow-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/undertow-dev</a><br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; undertow-dev mailing list<br>
&gt; <a href="mailto:undertow-dev@lists.jboss.org">undertow-dev@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/undertow-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/undertow-dev</a><br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; undertow-dev mailing list<br>
&gt; <a href="mailto:undertow-dev@lists.jboss.org">undertow-dev@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/undertow-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/undertow-dev</a><br>
<br>
</div></div><div class="HOEnZb"><div class="h5">--<br>
Jason T. Greene<br>
WildFly Lead / JBoss EAP Platform Architect<br>
JBoss, a division of Red Hat<br>
<br>
</div></div></blockquote></div><br></div></div>