On 2/6/2014, 11:02 PM, Guido van Rossum wrote:
On Thu, Feb 6, 2014 at 2:54 PM, Yury Selivanov<yselivanov...@gmail.com>wrote:
>A question to you and Guido: should the callback receive
>three arguments: loop, exception, and context, where
>context is a namedtuple (so we can add new fields to it
>in future releases). For now, 'context' can have two fields:
>'message' and 'callback'. The former is the log message, and
>the latter is the failed callback function (or None).
>
Hm... I don't like to have this much structure, but I do know that it's a
pain to extend a callback API with new information, so I think it's a good
idea. But maybe apart from the loop everything should be passed this way
(i.e. also the exception)? And may I suggest to make it a dict instead of a
named tuple? It's easier to check a dict for the presence of something that
may or may not exist.
While working on the patch I encountered the following problem:
event loop may not always be available, if we decide to use
the new error handling API for "futures._TracebackLogger.__del__"
and 'futures.Future.__del__". And I think that those errors
should go through the new API.
Should we move the 'loop' callback parameter to the 'context'
dict? And make it optional too?
Yury