This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients eric.snow, pitrou, serhiy.storchaka, vstinner
Date 2020-12-18.10:51:28
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1608288688.59.0.345978359093.issue42671@roundup.psfhosted.org>
In-reply-to
Content
> Drawback: it is a backward incompatible change. Code which worked by luck previously no longer works. I'm talking about applications which rely on __del__() methods being calling in an exact order and expect Python being in a specific state.

Python does not provide any warranty in which order finalizers are called:
https://docs.python.org/dev/reference/datamodel.html#object.__del__

PyPy is a good concrete example of finalizers being called in a different order.

An application must not rely on the finalizer order, but manage resources explicitly by calling close() methods or using context managers. Python emits ResourceWarning on this purpose.
History
Date User Action Args
2020-12-18 10:51:28vstinnersetrecipients: + vstinner, pitrou, eric.snow, serhiy.storchaka
2020-12-18 10:51:28vstinnersetmessageid: <1608288688.59.0.345978359093.issue42671@roundup.psfhosted.org>
2020-12-18 10:51:28vstinnerlinkissue42671 messages
2020-12-18 10:51:28vstinnercreate