I'm working on embedding stackless into a win32 app, and i'm getting an
assert in scheduling.c when i build in debug.
Line 1006 in scheduling.c : assert(ts->recursion_depth == 0 ||
ts->st.main == NULL && ts->st.current == NULL && prev == next);
When a task destructs it always seems that ts->st.current is never NULL,
and thus the assert fires off.
I've used multiple scripts to reproduce this, and here's one of them:
import stackless
import time
def call_wrapper(f, args, kwargs, result_ch):
result_ch.send(f(*args, **kwargs))
def call(f, *args, **kwargs):
result_ch= stackless.channel()
stackless.tasklet(call_wrapper)(f, args, kwargs, result_ch)
return result_ch.receive()
def factorial(n):
if n <= 1:
return 1
return n * call(factorial, n-1)
st = time.time()
factorial(200)
print time.time() - st
Is this a known issue? And can i safely disable this assert on my end?
Thanks,
Lee
_______________________________________________
Stackless mailing list
[email protected]
http://www.stackless.com/mailman/listinfo/stackless