1
我有一个程序,阻止与select读取,但我希望它发送一个SIGINT信号优雅地返回。并用处理程序处理该信号。不幸的是,block程序不会从select系统调用返回,而是收到SIGINT和interupt。 有人可以帮我弄清楚是什么问题?非常感谢。系统调用和信号处理程序
import select
import socket
import signal
class Test(object):
def __init__(self):
self._read, self._write = socket.socketpair()
def wait(self):
readable = [self._read.fileno()]
return select.select(readable, [], readable)
def wakeup(self):
self._write.send('1')
t = Test()
def handler(signum, frame):
t.wakeup()
signal.signal(signal.SIGINT, handler)
if __name__ == '__main__':
print t.wait()
print 'over.'
请参阅本http://stackoverflow.com/questions/2148888/python-trap-all-signals – Antarus
感谢您的帮助,但是这是指不帮我出的疑难问题。只是好奇,为什么选择没有得到os通知readalbe fds,但得到interuppt信号instand :( – user2431104