Charles-François Natali <neolo...@free.fr> added the comment: > The wakeup fd now contains the number of each signal, and so the behaviour has > to change. I applied your patch and I added a test.
Interesting. I suspected this would have an impact on the test_signal failure on the FreeBSD 6.4 buidbot: """ ====================================================================== FAIL: test_signum (test.test_signal.WakeupSignalTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/home/db3l/buildarea/3.x.bolen-freebsd/build/Lib/test/test_signal.py", line 272, in test_signum self.check_signum(signal.SIGUSR1, signal.SIGALRM) File "/usr/home/db3l/buildarea/3.x.bolen-freebsd/build/Lib/test/test_signal.py", line 238, in check_signum self.assertEqual(raised, signals) AssertionError: Tuples differ: (14, 30) != (30, 14) First differing element 0: 14 30 - (14, 30) + (30, 14) """ This means that the signals are not delivered in order. Normally, pending signals are checked upon return to user-space, so trip_signal should be called when the kill syscall returns, so signal numbers should be written in order to the wakeup FD (and here it looks like the lowest-numbered signal is delivered first). You could try adding a short sleep before the second kill (or just pass unordered=True to check_signum, but in that case we don't check the correct ordering). ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue8407> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com