bpo-1635741 port signalmodule to multi-phase init (PEP 489)#22049
bpo-1635741 port signalmodule to multi-phase init (PEP 489)#22049vstinner merged 4 commits intopython:masterfrom
Conversation
|
@vstinner @shihai1991 I split this from the other PR |
Modules/signalmodule.c
Outdated
| return -1; | ||
| } | ||
| Py_INCREF((PyObject*) &SiginfoType); | ||
| PyModule_AddObject(m, "struct_siginfo", (PyObject*) &SiginfoType); |
There was a problem hiding this comment.
Please check for error. On error, DECREF is needed.
| @@ -0,0 +1,2 @@ | |||
| Port the :mod:`signalmodule` extension module to multi-phase initialization | |||
There was a problem hiding this comment.
The module is called "_signal":
| Port the :mod:`signalmodule` extension module to multi-phase initialization | |
| Port the :mod:`_signal` extension module to multi-phase initialization | |
Modules/signalmodule.c
Outdated
| /* add the functions */ | ||
| #if defined(HAVE_SIGWAITINFO) || defined(HAVE_SIGTIMEDWAIT) | ||
| if (!initialized) { | ||
| if (PyStructSequence_InitType2(&SiginfoType, &struct_siginfo_desc) < 0) |
There was a problem hiding this comment.
I would be nice to convert the static type SiginfoType to a heap type, but it can be done later.
There was a problem hiding this comment.
@vstinner what is the procedure for types defined using PyStructSequence_InitType2?
Modules/signalmodule.c
Outdated
| return -1; | ||
| } | ||
| Py_INCREF((PyObject*) &SiginfoType); | ||
| PyModule_AddObject(m, "struct_siginfo", (PyObject*) &SiginfoType); |
There was a problem hiding this comment.
Maybe you can use PyModule_AddType() in here?
There was a problem hiding this comment.
@shihai1991 good idea, this simplifies the error handling too.
|
This change introduced a regression: https://bugs.python.org/issue41713 |
|
I partially reverted this change with PR #22087 to quickly fix https://bugs.python.org/issue41713. |
…lots1 * origin/master: (63 commits) bpo-41627: Distinguish 32 and 64-bit user site packages on Windows (pythonGH-22098) bpo-38585: Remove references to defusedexpat (pythonGH-22095) bpo-41721: Add xlc options (pythonGH-22096) bpo-40486: Specify what happens if directory content change diring iteration (pythonGH-22025) bpo-41638: Improve ProgrammingError message for absent parameter. (pythonGH-21999) bpo-41713: _signal doesn't use multi-phase init (pythonGH-22087) bpo-41700: Skip test if the locale is not supported (pythonGH-22081) [doc] Update documentation on logging optimization. (pythonGH-22075) Fix 'gather' rules in the python parser generator (pythonGH-22021) bpo-41697: Correctly handle KeywordOrStarred when parsing arguments in the parser (pythonGH-22077) [doc] Fix a typo in the graphlib docs (python#22030) bpo-1635741: Port _signal module to multi-phase init (PEP 489) (pythonGH-22049) bpo-39883: Use BSD0 license for code in docs (pythonGH-17635) bpo-39010: Improve test shutdown (python#22066) bpo-41696: Fix handling of debug mode in asyncio.run (python#22069) bpo-41690: Use a loop to collect args in the parser instead of recursion (pythonGH-22053) closes bpo-41689: Preserve text signature from tp_doc in C heap type creation. (pythonGH-22058) Fix invalid escape sequences in the peg_highlight Sphinx extension (pythonGH-22047) bpo-41675: Modernize siginterrupt calls (pythonGH-22028) bpo-41685: Don't pin setuptools version anymore in Doc/Makefile (pythonGH-22062) ...
https://bugs.python.org/issue1635741