From 66f7d66174b0898e436ea821309ee47a1b297a8f Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Thu, 23 Jun 2011 14:22:28 +0200 Subject: [PATCH] Issue #11223: skip also test_rlock_acquire_interruption() on FreeBSD6 --- Lib/test/test_threadsignals.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Lib/test/test_threadsignals.py b/Lib/test/test_threadsignals.py index 9162c86463..e0af31dae4 100644 --- a/Lib/test/test_threadsignals.py +++ b/Lib/test/test_threadsignals.py @@ -14,6 +14,10 @@ if sys.platform[:3] in ('win', 'os2') or sys.platform=='riscos': process_pid = os.getpid() signalled_all=thread.allocate_lock() +# Issue #11223: Locks are implemented using a mutex and a condition variable of +# the pthread library on FreeBSD6. POSIX condition variables cannot be +# interrupted by signals (see pthread_cond_wait manual page). +USING_PTHREAD_COND = (sys.platform == 'freebsd6') def registerSignals(for_usr1, for_usr2, for_alrm): usr1 = signal.signal(signal.SIGUSR1, for_usr1) @@ -70,10 +74,7 @@ class ThreadSignals(unittest.TestCase): def alarm_interrupt(self, sig, frame): raise KeyboardInterrupt - # Issue #11223: Locks are implemented using a mutex and a condition - # variable of the pthread library on FreeBSD6. POSIX condition variables - # cannot be interrupted by signals (see pthread_cond_wait manual page). - @unittest.skipIf(sys.platform == 'freebsd6', + @unittest.skipIf(USING_PTHREAD_COND, 'POSIX condition variables cannot be interrupted') def test_lock_acquire_interruption(self): # Mimic receiving a SIGINT (KeyboardInterrupt) with SIGALRM while stuck @@ -96,6 +97,8 @@ class ThreadSignals(unittest.TestCase): finally: signal.signal(signal.SIGALRM, oldalrm) + @unittest.skipIf(USING_PTHREAD_COND, + 'POSIX condition variables cannot be interrupted') def test_rlock_acquire_interruption(self): # Mimic receiving a SIGINT (KeyboardInterrupt) with SIGALRM while stuck # in a deadlock. -- 2.40.0