homepage

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 pitrou
Recipients brett.cannon, eric.snow, ncoghlan, pitrou
Date 2019年02月08日.17:13:37
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1549646017.22.0.395154635441.issue35943@roundup.psfhosted.org>
In-reply-to
Content
PyImport_GetModule() returns whatever is in sys.modules, even if the module is still importing and therefore only partially initialized.
One possibility is to reuse the optimization already done in PyImport_ImportModuleLevelObject():
 /* Optimization: only call _bootstrap._lock_unlock_module() if
 __spec__._initializing is true.
 NOTE: because of this, initializing must be set *before*
 stuffing the new module in sys.modules.
 */
 spec = _PyObject_GetAttrId(mod, &PyId___spec__);
 if (_PyModuleSpec_IsInitializing(spec)) {
 PyObject *value = _PyObject_CallMethodIdObjArgs(interp->importlib,
 &PyId__lock_unlock_module, abs_name,
 NULL);
 if (value == NULL) {
 Py_DECREF(spec);
 goto error;
 }
 Py_DECREF(value);
 }
 Py_XDECREF(spec);
Issue originally mentioned in issue34572.
History
Date User Action Args
2019年02月08日 17:13:39pitrousetrecipients: + pitrou, brett.cannon, ncoghlan, eric.snow
2019年02月08日 17:13:37pitrousetmessageid: <1549646017.22.0.395154635441.issue35943@roundup.psfhosted.org>
2019年02月08日 17:13:37pitroulinkissue35943 messages
2019年02月08日 17:13:37pitroucreate

AltStyle によって変換されたページ (->オリジナル) /