Hi,

Guido reviewed my patch, I commited it:
https://code.google.com/p/tulip/issues/detail?id=186

Thanks for the suggestion chrysn, it was a good idea ;-)

Victor

2014-07-05 0:37 GMT+02:00 Victor Stinner <[email protected]>:
> Hi,
>
> Here is patch for Handle:
> http://codereview.appspot.com/105570044
>
> - Handle.cancel() clears _callback and _args
> - In debug mode, add "created at" to repr(Handle)
>
> Victor
>
> 2014-07-04 23:45 GMT+02:00 Guido van Rossum <[email protected]>:
>> 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)

Reply via email to