test_signal.py

来自「mallet是自然语言处理、机器学习领域的一个开源项目。」· Python 代码 · 共 67 行

PY
67
字号
# Test the signal modulefrom test_support import verbose, TestSkippedimport signalimport osimport sysif sys.platform[:3] in ('win', 'os2') or sys.platform=='riscos':    raise TestSkipped, "Can't test signal on %s" % sys.platformif 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:                passexcept KeyboardInterrupt:    if verbose:        print "KeyboardInterrupt (assume the alarm() went off)"

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?