mirror of
https://github.com/python/cpython.git
synced 2025-12-23 09:19:18 +00:00
[3.12] gh-126303: Fix pickling and copying of os.sched_param objects (GH-126336) (GH-126424)
(cherry picked from commit d3840503b0)
This commit is contained in:
parent
94423b6be1
commit
844d908adb
5 changed files with 41 additions and 0 deletions
|
|
@ -24,6 +24,7 @@
|
|||
#include "pycore_object.h" // _PyObject_LookupSpecial()
|
||||
#include "pycore_pystate.h" // _PyInterpreterState_GET()
|
||||
#include "pycore_signal.h" // Py_NSIG
|
||||
#include "pycore_typeobject.h" // _PyType_AddMethod()
|
||||
|
||||
#ifdef MS_WINDOWS
|
||||
# include <windows.h>
|
||||
|
|
@ -7866,6 +7867,16 @@ os_sched_param_impl(PyTypeObject *type, PyObject *sched_priority)
|
|||
return res;
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
os_sched_param_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))
|
||||
{
|
||||
return Py_BuildValue("(O(N))", Py_TYPE(self), PyStructSequence_GetItem(self, 0));
|
||||
}
|
||||
|
||||
static PyMethodDef os_sched_param_reduce_method = {
|
||||
"__reduce__", (PyCFunction)os_sched_param_reduce, METH_NOARGS|METH_COEXIST, NULL,
|
||||
};
|
||||
|
||||
PyDoc_VAR(os_sched_param__doc__);
|
||||
|
||||
static PyStructSequence_Field sched_param_fields[] = {
|
||||
|
|
@ -17001,6 +17012,12 @@ posixmodule_exec(PyObject *m)
|
|||
return -1;
|
||||
}
|
||||
((PyTypeObject *)state->SchedParamType)->tp_new = os_sched_param;
|
||||
if (_PyType_AddMethod((PyTypeObject *)state->SchedParamType,
|
||||
&os_sched_param_reduce_method) < 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
PyType_Modified((PyTypeObject *)state->SchedParamType);
|
||||
#endif
|
||||
|
||||
/* initialize TerminalSize_info */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue