bpo-1635741: Port _posixshmem extension module to multiphase initialization (GH-23404)



Signed-off-by: Christian Heimes <christian@python.org>
diff --git a/Misc/NEWS.d/next/C API/2020-11-19-15-33-42.bpo-1635741.9tVsZt.rst b/Misc/NEWS.d/next/C API/2020-11-19-15-33-42.bpo-1635741.9tVsZt.rst
new file mode 100644
index 0000000..201b7ae
--- /dev/null
+++ b/Misc/NEWS.d/next/C API/2020-11-19-15-33-42.bpo-1635741.9tVsZt.rst
@@ -0,0 +1 @@
+Port _posixshmem extension module to multiphase initialization (:pep:`489`)
diff --git a/Modules/_multiprocessing/posixshmem.c b/Modules/_multiprocessing/posixshmem.c
index 436ac6d..d64ded4 100644
--- a/Modules/_multiprocessing/posixshmem.c
+++ b/Modules/_multiprocessing/posixshmem.c
@@ -110,21 +110,17 @@ static PyMethodDef module_methods[ ] = {
 };
 
 
-static struct PyModuleDef this_module = {
-    PyModuleDef_HEAD_INIT,  // m_base
-    "_posixshmem",          // m_name
-    "POSIX shared memory module",     // m_doc
-    -1,                     // m_size (space allocated for module globals)
-    module_methods,         // m_methods
+static struct PyModuleDef _posixshmemmodule = {
+    PyModuleDef_HEAD_INIT,
+    .m_name = "_posixshmem",
+    .m_doc = "POSIX shared memory module",
+    .m_size = 0,
+    .m_methods = module_methods,
 };
 
 /* Module init function */
 PyMODINIT_FUNC
-PyInit__posixshmem(void) {
-    PyObject *module;
-    module = PyModule_Create(&this_module);
-    if (!module) {
-        return NULL;
-    }
-    return module;
+PyInit__posixshmem(void)
+{
+    return PyModuleDef_Init(&_posixshmemmodule);
 }