Hi Lars:

>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. 

Yes this is what I am suggesting.

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 



On Wednesday, December 11, 2013 7:00 AM, lars van Gemerden 
<[email protected]> wrote:
 
Hi Andrew,

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. 

Cheers, Lars



On Fri, Dec 6, 2013 at 7:40 PM, Andrew Francis <[email protected]> wrote:

Hi Lars:
>
>
>Message: 1
>Date: Thu, 5 Dec 2013 22:07:20
 +0100
>From: lars van Gemerden <[email protected]>
>To: The Stackless Python Mailing List <[email protected]>
>Subject: Re: [Stackless] monkeypatching
>Message-ID:
>    <cap8kt8ylp1p46dezfdbwketvwmbwfxbara+msxvixhuwxj0...@mail.gmail.com>
>Content-Type: text/plain; charset="windows-1252"
>
>>(oh, i created a tasklet for the bottle microframework run() method, which
>>includes the mainn server loop()) ; I only called schedule() on
 each web
>>server request to be able to do anything outside the server mainloop.
>>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).
>
>
>
>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.
> 
>
>Cheers,
>Andrew
>
>
>P.S - Yahoo's new and improved mail interface is killing me!
>_______________________________________________
>Stackless mailing list
>[email protected]
>http://www.stackless.com/mailman/listinfo/stackless
>


-- 
====================================
Lars van Gemerden
[email protected]
+31 6 26 88 55 39
==================================== 
_______________________________________________
Stackless mailing list
[email protected]
http://www.stackless.com/mailman/listinfo/stackless

Reply via email to