[Stackless] Stackless uthread-ccp module usage

Carlos Eduardo de Paula cedepaula at yahoo.com.br
Fri Feb 23 19:04:35 CET 2007


Hello guys, 

I started to use stackless again (was very busy on my work) and now after all discussion on stackless mailling list and docs i´ve been reading I understand stackless better.

Looking thru the uthread-ccp you provided on sandbox, i saw made a small example and found out something wrong.

I made:
----------------------------------------
from uthread import *

def doStuff(mult=1):
    st = time.time()
    c = 0
    for i in xrange(int(100000*mult)):
        c = c + 1
        BeNice()
    print 100000*mult, " operations took: " , time.time() - st , " seconds."

    

Tasklet(doStuff)(1)
Tasklet(doStuff)(2)
Tasklet(doStuff)(3)
Tasklet(doStuff)(4)
Tasklet(doStuff)(5)

Run()

----------------------------------------

but the app returns not executing my tasklets.

Doing the same with the 'stackless.schedule()' and 'stackless.run()' way my app worked printing something like:

100000  operations took:  1.00099992752  seconds.
200000  operations took:  1.82899999619  seconds.
300000  operations took:  2.48600006104  seconds.
400000  operations took:  3.01699995995  seconds.
500000  operations took:  3.36100006104  seconds.


I found that the problem is around the Run() function in uthread module, it checks for yieldChannel.balance or len(sleepingTasklets) but none have tasklets on yet on startup, putting some debug into Run method, i checked that only after 1 loop the yieldChannel gets to -5 (quantity of tasklets I have).

Am I doing something wrong or any correction should be made on Run method?

One more thing... I didnt get the:

        t = stackless.run(10000000)
        if t is not None:
            # Need better standard handling of this case.
            # Could StackTrace I guess?
            raise RuntimeError("Runaway tasklet", t.id)

How do this watchdog works, what is the 100000000 in the run? Seconds? What do it waits till an exception is raised?

Ps.Sorry if i´m a little dumb on this but its something i didnt got yet.

Best regards and thanks for all,

Carlos




 
____________________________________________________________________________________
No need to miss a message. Get email on-the-go 
with Yahoo! Mail for Mobile. Get started.
http://mobile.yahoo.com/mail 

_______________________________________________
Stackless mailing list
Stackless at stackless.com
http://www.stackless.com/mailman/listinfo/stackless



More information about the Stackless mailing list