Guido van Rossum added the comment:

Whew. Complex issue!

The OP should probably use his workaround or call loop.stop() instead of 
raising SystemExit.

Asyncio in general is rather careless about "true" BaseExceptions (i.e. that 
aren't also Exceptions), we should decide what we want to do for these (there 
are definitely ways to get in a bad state if you catch one and then resume the 
loop).

call_exception_handler() tries to log and then ignore exceptions raised by the 
handler, so the except clause Yuri's patch adds to __del__ in fact will only 
see true BaseExceptions.

Adding an except clause to __del__ seems very unprincipled -- there's another 
__del__ that would require the same treatment (all our __del__ methods seem to 
call call_exception_handler()) and *if* we want to catch it we should probably 
do it in call_exception_handler().

boom() does in fact yield.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue25489>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to