mirror of https://github.com/python/cpython
fixes gh-96078: os.sched_yield release the GIL while calling sched_yield(2). (gh-97965)
This commit is contained in:
parent
e1c4d56fdd
commit
b9d2e81716
|
@ -0,0 +1,2 @@
|
||||||
|
:func:`os.sched_yield` now release the GIL while calling sched_yield(2).
|
||||||
|
Patch by Dong-hee Na.
|
|
@ -7075,8 +7075,13 @@ static PyObject *
|
||||||
os_sched_yield_impl(PyObject *module)
|
os_sched_yield_impl(PyObject *module)
|
||||||
/*[clinic end generated code: output=902323500f222cac input=e54d6f98189391d4]*/
|
/*[clinic end generated code: output=902323500f222cac input=e54d6f98189391d4]*/
|
||||||
{
|
{
|
||||||
if (sched_yield())
|
int result;
|
||||||
|
Py_BEGIN_ALLOW_THREADS
|
||||||
|
result = sched_yield();
|
||||||
|
Py_END_ALLOW_THREADS
|
||||||
|
if (result < 0) {
|
||||||
return posix_error();
|
return posix_error();
|
||||||
|
}
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue