[Stackless] Help using stackless with threads

Jeff Senn senn at maya.com
Tue Jul 15 14:44:17 CEST 2008


On Jul 15, 2008, at 4:41 AM, inhahe wrote:

> Can someone help me with using stackless with python threads.  I'm
> trying to make a thread pool for database access using stackless
> channels to activate the threads because I can't use signals because
> I'm on Windows.  So I run 4 threads (using the thread module) and each
> thread runs 1 stackless tasklet in an infinite loop that waits to
> receive from a unique channel.  But it seems all four of them fall
> through the receive() call each iteration - whether I send something
> or not - and I'm guessing it's because each one thinks that it's the
> last tasklet running because it's the only tasklet in its thread.  So
> how do I fix this?  Here's the code I have..

Hi inhahe-

Are you sure you really want/need stackless?   It sounds like,
for your purpose, using the (regular python) Queue class
(with the thread-compatible .get()/.put() methods)
is what you need.

Stackless was not originally designed to schedule between
threads -- nor to put a thread to "sleep"... (there are
some subtle issues there that have been discussed on this
list several times before...)







More information about the Stackless mailing list