mirror of
https://github.com/python/cpython.git
synced 2025-12-04 00:30:19 +00:00
closes bpo-34004: Skip lock interruption tests on musl. (GH-9224)
Returning EINTR from pthread semaphore or lock acquisition is an optional POSIX feature. musl does not provide this feature, so some threadsignal tests fail when Python is built against it. There's no good way to test for musl, so we skip if we're on Linux and not using glibc pthreads. Also, hedge in the threading documentation about when we can provide interrupts from lock acquisition.
This commit is contained in:
parent
0bd1a2dcfd
commit
5b10d5111d
2 changed files with 10 additions and 1 deletions
|
|
@ -400,7 +400,8 @@ All methods are executed atomically.
|
|||
The *timeout* parameter is new.
|
||||
|
||||
.. versionchanged:: 3.2
|
||||
Lock acquires can now be interrupted by signals on POSIX.
|
||||
Lock acquisition can now be interrupted by signals on POSIX if the
|
||||
underlying threading implementation supports it.
|
||||
|
||||
|
||||
.. method:: release()
|
||||
|
|
|
|||
|
|
@ -78,6 +78,10 @@ class ThreadSignals(unittest.TestCase):
|
|||
|
||||
@unittest.skipIf(USING_PTHREAD_COND,
|
||||
'POSIX condition variables cannot be interrupted')
|
||||
@unittest.skipIf(sys.platform.startswith('linux') and
|
||||
not sys.thread_info.version,
|
||||
'Issue 34004: musl does not allow interruption of locks '
|
||||
'by signals.')
|
||||
# Issue #20564: sem_timedwait() cannot be interrupted on OpenBSD
|
||||
@unittest.skipIf(sys.platform.startswith('openbsd'),
|
||||
'lock cannot be interrupted on OpenBSD')
|
||||
|
|
@ -105,6 +109,10 @@ class ThreadSignals(unittest.TestCase):
|
|||
|
||||
@unittest.skipIf(USING_PTHREAD_COND,
|
||||
'POSIX condition variables cannot be interrupted')
|
||||
@unittest.skipIf(sys.platform.startswith('linux') and
|
||||
not sys.thread_info.version,
|
||||
'Issue 34004: musl does not allow interruption of locks '
|
||||
'by signals.')
|
||||
# Issue #20564: sem_timedwait() cannot be interrupted on OpenBSD
|
||||
@unittest.skipIf(sys.platform.startswith('openbsd'),
|
||||
'lock cannot be interrupted on OpenBSD')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue