Cool, I think we have a plan then.
On Fri, Jul 4, 2014 at 1:42 PM, Victor Stinner <[email protected]> wrote: > 2014-07-04 16:52 GMT+02:00 Guido van Rossum <[email protected]>: > > But wouldn't keeping the traceback (on cancel) be just as detrimental as > > keeping the callback/args? > > _source_traceback is not a Python traceback object, it's the result of > traceback.extract_stack(). I chose this function because it avoids > introducing reference cycle. It would be annoying to add reference > cycles in debug mode, while the debug mode is usually used to debug > tricky issues like reference cycles :-) > > Storing the traceback as a list has a nice side effect: it's possible > to hide "internal" calls to only show the traceback of the user code. > For example, async() truncates the traceback to hide the call to > Task() constructor. So you only see the call to async(). > > Storing extract_stack() is maybe more expensive than storing a > traceback object, but I don't care of performances in debug mode. I > designed the debug mode to be able to call more expensive code (in > debug mode) :-) > > Victor > -- --Guido van Rossum (python.org/~guido)
