from test
.test_support
import verbose
, TestSkipped
, TestFailed
if sys
.platform
[:3] in ('win', 'os2') or sys
.platform
=='riscos':
raise TestSkipped
, "Can't test signal on %s" % sys
.platform
# Shell script that will send us asynchronous signals
class HandlerBCalled(Exception):
raise HandlerBCalled
, args
signal
.alarm(20) # Entire test lasts at most 20 sec.
hup
= signal
.signal(signal
.SIGHUP
, handlerA
)
usr1
= signal
.signal(signal
.SIGUSR1
, handlerB
)
usr2
= signal
.signal(signal
.SIGUSR2
, signal
.SIG_IGN
)
alrm
= signal
.signal(signal
.SIGALRM
, signal
.default_int_handler
)
print "starting pause() loop..."
print "HandlerBCalled exception caught"
except KeyboardInterrupt:
print "KeyboardInterrupt (assume the alarm() went off)"
signal
.signal(signal
.SIGHUP
, hup
)
signal
.signal(signal
.SIGUSR1
, usr1
)
signal
.signal(signal
.SIGUSR2
, usr2
)
signal
.signal(signal
.SIGALRM
, alrm
)