<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:12pt"><div id="yiv0429948830"><div><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;"><div id="yiv0429948830yui_3_13_0_ym1_7_1386807814695_10"><font id="yiv0429948830yui_3_13_0_ym1_7_1386807814695_22" face="Helvetica Neue, Segoe UI, Helvetica, Arial, Lucida Grande, sans-serif" size="2">Hi Lars:</font></div><div id="yiv0429948830yui_3_13_0_ym1_1_1386796204651_9486" style="font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px;"><br clear="none"></div><div id="yiv0429948830yui_3_13_0_ym1_1_1386796204651_9493" style="font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size:
 13px;">>It wasn't blocked on IO, the server got stuck in it's mainloop (or similar name). I don't know much about webservers, >WSGIservers etc, but what i also tried was putting a schedule() in this mainloop (which i think polls the socket). Is this >what you
 suggest? It seems to work well, apart from the occasional weird AttributeError, which i'll have to look into. >However others discouraged this approach, but i never quite understood why. </div><div id="yiv0429948830yui_3_13_0_ym1_1_1386796204651_9500" style="font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px;"><br clear="none"></div><div id="yiv0429948830yui_3_13_0_ym1_1_1386796204651_9500" style="font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px;">Yes this is what I am suggesting.</div><div id="yiv0429948830yui_3_13_0_ym1_1_1386796204651_9500" style="font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px;"><br clear="none"></div><div id="yiv0429948830yui_3_13_0_ym1_1_1386796204651_9500" style="font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, Arial, 'Lucida Grande', sans-serif;
 font-size: 13px;">However I have another idea for a general purpose solution. The
 only time you want a timeout in a select/poll/epoll is if you have </div><div class="yiv0429948830yqt8448895403" id="yiv0429948830yqt60309"><div class="yiv0429948830yahoo_quoted" id="yiv0429948830yui_3_13_0_ym1_7_1386807814695_12" style="display: block;"> <br clear="none"> <br clear="none"> <div class="yiv0429948830yui_3_13_0_ym1_1_1386807814695_2693" style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;"> <div class="yiv0429948830yui_3_13_0_ym1_1_1386807814695_2694" style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;"> <div dir="ltr"> <font size="2" face="Arial"> On Wednesday, December 11, 2013 7:00 AM, lars van Gemerden <lars@rational-it.com> wrote:<br clear="none"> </font> </div>  <div class="yiv0429948830y_msg_container"><div id="yiv0429948830"><div><div dir="ltr">Hi Andrew,<div><br clear="none"></div><div>It
 wasn't blocked on IO, the server got stuck in it's mainloop (or similar name). I don't know much about webservers, WSGIservers etc, but what i also tried was putting a schedule() in
 this mainloop (which i think polls the socket). Is this what you suggest? It seems to work well, apart from the occasional weird AttributeError, which i'll have to look into. However others discouraged this approach, but i never quite understood why. </div>
<div><br clear="none"></div><div>Cheers, Lars</div></div><div class="yiv0429948830gmail_extra"><br clear="none"><br clear="none"><div class="yiv0429948830gmail_quote">On Fri, Dec 6, 2013 at 7:40 PM, Andrew Francis <span dir="ltr"><<a rel="nofollow" shape="rect" ymailto="mailto:andrewfr_ice@yahoo.com" target="_blank" href="mailto:andrewfr_ice@yahoo.com">andrewfr_ice@yahoo.com</a>></span> wrote:<br clear="none">
<blockquote class="yiv0429948830gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="yiv0429948830yqt3148795441" id="yiv0429948830yqt95881"><div><div class="yiv0429948830yui_3_13_0_ym1_1_1386807814695_2697" style="font-size: 12pt; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"><div>
<div><div class="yiv0429948830yui_3_13_0_ym1_1_1386807814695_2698" style="font-size: 12pt; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"><div><span>Hi Lars:</span></div><div style="display:block;"><div><div><div class="yiv0429948830yui_3_13_0_ym1_1_1386807814695_2700" dir="ltr" style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;">
<br clear="none"></div><div class="yiv0429948830yui_3_13_0_ym1_1_1386807814695_2701" style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;">Message: 1<br clear="none">Date: Thu, 5 Dec 2013 22:07:20
 +0100<br clear="none">From: lars van Gemerden <<a rel="nofollow" shape="rect" ymailto="mailto:lars@rational-it.com" target="_blank" href="mailto:lars@rational-it.com">lars@rational-it.com</a>><br clear="none">To: The Stackless Python Mailing List <<a rel="nofollow" shape="rect" ymailto="mailto:stackless@stackless.com" target="_blank" href="mailto:stackless@stackless.com">stackless@stackless.com</a>><br clear="none">
Subject: Re: [Stackless] monkeypatching<br clear="none">Message-ID:<br clear="none">    <CAP8kt8yLp1P46DeZfdBwkeTvWmbWFXbAra+<a rel="nofollow" shape="rect" ymailto="mailto:MSxViXhuWXj0Fsw@mail.gmail.com" target="_blank" href="mailto:MSxViXhuWXj0Fsw@mail.gmail.com">MSxViXhuWXj0Fsw@mail.gmail.com</a>><br clear="none">
Content-Type: text/plain; charset="windows-1252"<br clear="none"><br clear="none">>(oh, i created a tasklet for the bottle microframework run() method, which<br clear="none">>includes the mainn server loop()) ; I only called schedule() on
 each web<br clear="none">>server request to be able to do anything outside the server mainloop.<br clear="none">>However that had the
 effect that process steps where not executed as >long as the end user sent no requests (some processes do not have any >web component).<br clear="none"></div><div class="yiv0429948830yui_3_13_0_ym1_1_1386807814695_2702" style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;">
<br clear="none"></div><div class="yiv0429948830yui_3_13_0_ym1_1_1386807814695_2703" style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;">I haven't had a chance to carefully look at your code. However from this description, it sounds like a thread/tasklet is blocked on I/O.  This will have the effect of blocking all tasklets in that thread. What you need to do is occasionally call a timeout from the underlying system call (for example, select()) and do a schedule() so other tasklets can
 run.</div><div> <br clear="none"></div><div class="yiv0429948830yui_3_13_0_ym1_1_1386807814695_2704" style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;">Cheers,</div><div class="yiv0429948830yui_3_13_0_ym1_1_1386807814695_2705" style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;">
Andrew</div><div class="yiv0429948830yui_3_13_0_ym1_1_1386807814695_2706" style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;"><br clear="none"></div><div class="yiv0429948830yui_3_13_0_ym1_1_1386807814695_2707" style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;">
P.S - Yahoo's new and improved mail interface is killing me!</div>  </div> </div>  </div> </div></div></div></div></div></div><br clear="none">_______________________________________________<br clear="none">
Stackless mailing list<br clear="none">
<a rel="nofollow" shape="rect" ymailto="mailto:Stackless@stackless.com" target="_blank" href="mailto:Stackless@stackless.com">Stackless@stackless.com</a><br clear="none">
<a rel="nofollow" shape="rect" target="_blank" href="http://www.stackless.com/mailman/listinfo/stackless">http://www.stackless.com/mailman/listinfo/stackless</a><br clear="none"></blockquote></div><br clear="none"><br clear="all"><div><br clear="none"></div>-- <br clear="none">====================================<br clear="none">
Lars van Gemerden<br clear="none"><a rel="nofollow" shape="rect" ymailto="mailto:lars@rational-it.com" target="_blank" href="mailto:lars@rational-it.com">lars@rational-it.com</a><br clear="none">+31 6 26 88 55 39<br clear="none">====================================
</div></div></div><br clear="none"><br clear="none"></div>  </div> </div>  </div></div> </div></div></div></div></body></html>