On Tue, Jul 15, 2008 at 8:44 AM, Jeff Senn <[EMAIL PROTECTED]> wrote: > > 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...) >
Thanks, it looks like that'll work, assuming there's no spinlock involved. but i guess there can't be with the gil? but i still need to use tasklets with the threads a little bit. i'm using stackless anyway (for the main project), and when a tasklet adds something to the queue, it passes a channel and when after the worker thread executes the request it sends the result back to that channel. do the subtle issues you mentioned apply there? thanx _______________________________________________ Stackless mailing list [email protected] http://www.stackless.com/mailman/listinfo/stackless
