diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2022-10-06 21:50:44 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-06 21:50:44 -0700 |
commit | 11945f2cf6ae4aeb8202f481e8881ec0fbfabe89 (patch) | |
tree | 0e850c28a7e0aba98ff71689a23565f41c8c4eb6 | |
parent | e0e303abe426d554b9e4713722b0cc20818d5bfb (diff) | |
download | cpython-git-11945f2cf6ae4aeb8202f481e8881ec0fbfabe89.tar.gz |
fixes gh-96078: os.sched_yield release the GIL while calling sched_yield(2). (gh-97965)
(cherry picked from commit b9d2e8171696514e9226164005f7bf24bf69e66d)
Co-authored-by: Dong-hee Na <donghee.na@python.org>
-rw-r--r-- | Misc/NEWS.d/next/Core and Builtins/2022-10-06-15-45-57.gh-issue-96078.fS-6mU.rst | 2 | ||||
-rw-r--r-- | Modules/posixmodule.c | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-10-06-15-45-57.gh-issue-96078.fS-6mU.rst b/Misc/NEWS.d/next/Core and Builtins/2022-10-06-15-45-57.gh-issue-96078.fS-6mU.rst new file mode 100644 index 0000000000..d1f949c6e1 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-10-06-15-45-57.gh-issue-96078.fS-6mU.rst @@ -0,0 +1,2 @@ +:func:`os.sched_yield` now release the GIL while calling sched_yield(2). +Patch by Dong-hee Na. diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 0b8b41cb2d..f602ae5c58 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -7028,8 +7028,13 @@ static PyObject * os_sched_yield_impl(PyObject *module) /*[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(); + } Py_RETURN_NONE; } |