Mixing asyncore with threads
Thomas Jensen
thomasNO at SPAM.obscure.dk
Mon Oct 22 18:39:50 EDT 2001
Hi,
Is it possible/advisible to mix asyncore (or modules using it) with
threads ?
More specifically, I'd like to build a HTTP based server, which will
serve, more or less, IO bound content most of the time (served directly
from memory/disk/DB). For this asyncore seems ideal.
However, in some circumstances the content will be quite CPU intensive
(like dynamically generated PNGs from a large dataset, etc.). In this
case a thread would be nice, to prevent blocking other trafic while
calculating.
The problem is, that select() will block until it sees trafic on a
readable or writeable port (AFAIK).
So far I've come up with the following solutions:
(1) Wraping asyncore.poll() in a loop with a small timeout value.
(2) Use a "dummy" port on the loopback interface for triggering
select() once output from the thread is finished.
Of the two, I like (2) best, but I keep getting the feeling that there
must be a better way ?
Perhaps I should just settle on either asyncore or threads ?
--
Best Regards
Thomas Jensen
More information about the Python-list
mailing list