[Stackless] Stackless and mysqldb
sipickles at hotmail.com
Mon Jan 14 12:48:56 CET 2008
Andrew Dalke wrote:
> On Jan 13, 2008, at 11:01 PM, Simon Pickles wrote:
>> Say for instance, I want to do a mysql select call, but I don't
>> want to
>> block the interpreter waiting for the call to complete.
>> How can this be achieved in a stackless framework?
>> Do I still need to use a separate threading.thread to perform the
>> lockup, keeping the main threadlet running? can I use channels to
>> communicate the SQL result from a separate threading.thread to a
>> stackless threadlet in main thread?
> The existing MySQL interfaces block, which Stackless can't do
> anything about. Stackless is a cooperative system.
> You'll need to put the MySQL call into its own thread, which can
> block without blocking the Stackless runtime. Send the result back
> to Stackless through a channel.
> You may need to take care - Stackless doesn't know about the new
> thread so if no tasklets are running (while blocked waiting for a
> result from the thread) then it will think there's a deadlock and
> exit from its main loop.
> There's some back email traffic on this topic, such as the thread
> When you've got it working, could you write up a recipe about it and
> post it here to help others with the same question?
> dalke at dalkescientific.com
> Stackless mailing list
> Stackless at stackless.com
Hi Andrew, thanks for the reply.
I think I have experienced the deadlock-causing-exit already! To
counter this, can I just keep a monitoring tasklet running to keep the
main tasklet alive?
I am planning on building a demo based on the stacklessFileNonBlocking
example, this time with a SQL connection per thread. I'll let you know
when I complete it (I mean - get stuck!)
Linux Counter: User# 424693
More information about the Stackless