Message396703
| Author |
JunyiXie |
| Recipients |
JunyiXie |
| Date |
2021年06月29日.06:53:41 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1624949622.19.0.942644638958.issue44532@roundup.psfhosted.org> |
| In-reply-to |
| Content |
In _PyStructSequence_InitType, it will check type is initialized.
but when we have multi subinterpreters, type may be initialized expected.
when type already been initialized, should return 0 rather than throw exception.
```c
/* PyTypeObject has already been initialized */
if (Py_REFCNT(type) != 0) {
return 0;
}
```
```c
int
_PyStructSequence_InitType(PyTypeObject *type, PyStructSequence_Desc *desc,
unsigned long tp_flags)
{
PyMemberDef *members;
Py_ssize_t n_members, n_unnamed_members;
#ifdef Py_TRACE_REFS
/* if the type object was chained, unchain it first
before overwriting its storage */
if (type->ob_base.ob_base._ob_next) {
_Py_ForgetReference((PyObject *)type);
}
#endif
/* PyTypeObject has already been initialized */
if (Py_REFCNT(type) != 0) {
PyErr_BadInternalCall();
return -1;
}
``` |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2021年06月29日 06:53:42 | JunyiXie | set | recipients:
+ JunyiXie |
| 2021年06月29日 06:53:42 | JunyiXie | set | messageid: <1624949622.19.0.942644638958.issue44532@roundup.psfhosted.org> |
| 2021年06月29日 06:53:42 | JunyiXie | link | issue44532 messages |
| 2021年06月29日 06:53:41 | JunyiXie | create |
|