Issue 22696: Add a function to know about interpreter shutdown (original) (raw)

Created on 2014-10-22 12:20 by pitrou, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
is_finalizing.patch vstinner,2014-10-22 12:32 review
traceback_ignore_linecache_error.patch vstinner,2014-12-05 09:29 review
is_finalizing2.patch pitrou,2014-12-05 18:18 review
Messages (16)
msg229817 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2014-10-22 12:20
I propose to add a new function sys.shutting_down() (name debatable) returning True if the interpreter is currently shutting down. This would be a function so that you can bind it and avoid having it wiped at shutdown :-)
msg229818 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2014-10-22 12:32
For the issue #22599, I wrote a patch but then I removed my patch and reverted my changed... Here is a new patch which implements why I already wrote: add a new sys._is_finalizing() function, with a unit test. > I propose to add a new function sys.shutting_down() (name debatable) The name sounds like a function to shut down the computer or exit Python. I don't like _is_finalizing() name neither :-) My patch uses a private function which is CPython specific. Does it make sense to add a public function instead? Is it possible to implement it in any Python implementation (PyPy, IronPython, Jython, etC.)? I guess that the most dummy implementation is to always return False (Python is always running.
msg229820 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2014-10-22 12:58
Are there other special interpreter states about which it would by helpful to know? Interpreter initializing, garbage collecting, signal handling?
msg229823 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2014-10-22 13:56
> My patch uses a private function which is CPython specific. > Does it make sense to add a public function instead? I would like it to be public. It can be useful in __del__ methods and the like.
msg229824 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2014-10-22 13:58
> Are there other special interpreter states about which it would by > helpful to know? Interpreter initializing, garbage collecting, signal > handling? - interpreter initializing: user code generally isn't executed in that phase - garbage collecting: there are already garbage collection callbacks - signal handling: well... I don't see why that would be useful
msg231248 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2014-11-16 14:50
I'm +0 for is_finalizing. There is a typo in the docstring.
msg231364 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2014-11-19 10:12
An indirect way how to know about interpreter shutdown -- test existing of the path attribute in sys ().
msg232178 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2014-12-05 07:44
After solving this issue we should reconsider the traceback_ignore_linecache_error.patch patch in .
msg232186 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2014-12-05 09:29
> After solving this issue we should reconsider the traceback_ignore_linecache_error.patch patch in . I reposted the patch in this issue since I just closed the issue #22599.
msg232200 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2014-12-05 18:18
Here is a patch with docs.
msg232210 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2014-12-05 21:22
is_finalizing2.patch looks good to me.
msg232212 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2014-12-05 21:37
Before committing the patch it will be good to find places in the code which will benefit from this function. And please don't forget to fix a typo in the docstring.
msg232218 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2014-12-05 22:03
> Before committing the patch it will be good to find places in the code which will benefit from this function. The traceback and/or the linecache is a first good candidate to use this new function. We may patch more functions later if needed, I don't think that we need to address all issues right now.
msg232261 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2014-12-07 00:29
New changeset 7f3695701724 by Antoine Pitrou in branch 'default': Issue #22696: Add function :func:`sys.is_finalizing` to know about interpreter shutdown. https://hg.python.org/cpython/rev/7f3695701724
msg232262 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2014-12-07 00:30
Using the function in the stdlib can be done separately. I fixed the typo in the docstring. Thanks!
msg233494 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2015-01-06 00:34
> Using the function in the stdlib can be done separately. Is there an open issue for that?
History
Date User Action Args
2022-04-11 14:58:09 admin set github: 66885
2015-01-06 00:34:40 vstinner set messages: +
2014-12-07 03:38:36 Arfrever set nosy: + Arfrever
2014-12-07 00:30:35 pitrou set status: open -> closedresolution: fixedmessages: + stage: needs patch -> resolved
2014-12-07 00:29:54 python-dev set nosy: + python-devmessages: +
2014-12-05 22:03:53 vstinner set messages: +
2014-12-05 21:37:46 serhiy.storchaka set messages: +
2014-12-05 21:22:56 vstinner set messages: +
2014-12-05 18:19:00 pitrou set files: + is_finalizing2.patchmessages: +
2014-12-05 09:29:15 vstinner set files: + traceback_ignore_linecache_error.patchmessages: +
2014-12-05 09:27:35 vstinner unlink issue22599 dependencies
2014-12-05 07:44:22 serhiy.storchaka set messages: +
2014-11-19 10:12:17 serhiy.storchaka set messages: +
2014-11-16 14:50:07 serhiy.storchaka set messages: +
2014-11-16 14:45:37 serhiy.storchaka link issue22599 dependencies
2014-10-22 13:58:47 pitrou set messages: +
2014-10-22 13:56:42 pitrou set messages: +
2014-10-22 12:58:34 serhiy.storchaka set messages: +
2014-10-22 12:32:16 vstinner set files: + is_finalizing.patchkeywords: + patchmessages: +
2014-10-22 12:20:53 pitrou create