📄 test_sig.py
字号:
# Test the signal modulefrom test_support import verboseimport signalimport osimport sysif sys.platform[:3] in ('win', 'os2'): raise ImportError, "Can't test signal on %s" % sys.platform[:3]if verbose: x = '-x'else: x = '+x'pid = os.getpid()# Shell script that will send us asynchronous signalsscript = """ ( set %(x)s sleep 2 kill -5 %(pid)d sleep 2 kill -2 %(pid)d sleep 2 kill -3 %(pid)d ) &""" % vars()def handlerA(*args): if verbose: print "handlerA", argsHandlerBCalled = "HandlerBCalled" # Exceptiondef handlerB(*args): if verbose: print "handlerB", args raise HandlerBCalled, argssignal.alarm(20) # Entire test lasts at most 20 sec.signal.signal(5, handlerA)signal.signal(2, handlerB)signal.signal(3, signal.SIG_IGN)signal.signal(signal.SIGALRM, signal.default_int_handler)os.system(script)print "starting pause() loop..."try: while 1: if verbose: print "call pause()..." try: signal.pause() if verbose: print "pause() returned" except HandlerBCalled: if verbose: print "HandlerBCalled exception caught" else: pass except KeyboardInterrupt: if verbose: print "KeyboardInterrupt (assume the alarm() went off)"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -