Doh! os.read() raises an OSError, not an IOError when it's interrupted.
And fix some flakiness in test_itimer_prof, which could detect that the timer had reached 0 before the signal arrived announcing that fact.
This commit is contained in:
parent
ba43774d1c
commit
2b860db35c
|
@ -31,7 +31,7 @@ def exit_subprocess():
|
|||
def ignoring_eintr(__func, *args, **kwargs):
|
||||
try:
|
||||
return __func(*args, **kwargs)
|
||||
except IOError as e:
|
||||
except EnvironmentError as e:
|
||||
if e.errno != signal.EINTR:
|
||||
raise
|
||||
return None
|
||||
|
@ -363,12 +363,15 @@ class ItimerTest(unittest.TestCase):
|
|||
def test_itimer_prof(self):
|
||||
self.itimer = signal.ITIMER_PROF
|
||||
signal.signal(signal.SIGPROF, self.sig_prof)
|
||||
signal.setitimer(self.itimer, 0.2)
|
||||
signal.setitimer(self.itimer, 0.2, 0.2)
|
||||
|
||||
for i in xrange(100000000):
|
||||
if signal.getitimer(self.itimer) == (0.0, 0.0):
|
||||
break # sig_prof handler stopped this itimer
|
||||
|
||||
# profiling itimer should be (0.0, 0.0) now
|
||||
self.assertEquals(signal.getitimer(self.itimer), (0.0, 0.0))
|
||||
# and the handler should have been called
|
||||
self.assertEqual(self.hndl_called, True)
|
||||
|
||||
def test_main():
|
||||
|
|
Loading…
Reference in New Issue