https://github.com/python/cpython/commit/a69bdab5410b27c9983adbdae69645897c2fa550 commit: a69bdab5410b27c9983adbdae69645897c2fa550 branch: 3.14 author: Miss Islington (bot) <[email protected]> committer: ZeroIntensity <[email protected]> date: 2025-10-07T13:29:37-04:00 summary:
[3.14] gh-123828: Fix data race in `_interpchannels._waiting_release` (GH-124107) (GH-139517) gh-123828: Fix data race in `_interpchannels._waiting_release` (GH-124107) (cherry picked from commit f39dea3baeb9f9b7a0199d06508d722494db0145) Co-authored-by: Nadeshiko Manju <[email protected]> files: M Lib/test/test__interpchannels.py M Modules/_interpchannelsmodule.c diff --git a/Lib/test/test__interpchannels.py b/Lib/test/test__interpchannels.py index 858d31a73cf4f4..d7cf77368ef9f2 100644 --- a/Lib/test/test__interpchannels.py +++ b/Lib/test/test__interpchannels.py @@ -6,7 +6,7 @@ import time import unittest -from test.support import import_helper, skip_if_sanitizer +from test.support import import_helper _channels = import_helper.import_module('_interpchannels') from concurrent.interpreters import _crossinterp @@ -365,7 +365,6 @@ def test_shareable(self): #self.assertIsNot(got, obj) -@skip_if_sanitizer('gh-129824: race on _waiting_release', thread=True) class ChannelTests(TestBase): def test_create_cid(self): diff --git a/Modules/_interpchannelsmodule.c b/Modules/_interpchannelsmodule.c index 9c1f8615161275..274bfacfed874b 100644 --- a/Modules/_interpchannelsmodule.c +++ b/Modules/_interpchannelsmodule.c @@ -511,12 +511,12 @@ _waiting_release(_waiting_t *waiting, int received) assert(!waiting->received); waiting->status = WAITING_RELEASING; - PyThread_release_lock(waiting->mutex); if (waiting->received != received) { assert(received == 1); waiting->received = received; } waiting->status = WAITING_RELEASED; + PyThread_release_lock(waiting->mutex); } static void _______________________________________________ Python-checkins mailing list -- [email protected] To unsubscribe send an email to [email protected] https://mail.python.org/mailman3//lists/python-checkins.python.org Member address: [email protected]
