我正在开发一个从套接字接收数据的程序,当发送信号时,我希望能够从接收中断。
我现在拥有的:
class Killer:
die = False
def __init__(self):
signal.signal(signal.SIGINT, self.terminate)
signal.signal(signal.SIGTERM, self.terminate)
def terminate(self, signum, frame):
print ("caught " + str(signum))
self.die = True;
sock = socket.socket()
# Generic socket setup
while (~killer.die):
#generic data setup
sock.receive(data)
sock.shutdown(socket.SHUT_RDWR)
当中断被捕获时,它会打印然后再返回等待。
接收信号时是否有办法摆脱接收?
答案 0 :(得分:1)
自Python 3.5起,在调用(Python)信号处理程序后,中断的系统调用为automatically resumed。如果您不想这样,请在处理程序中引发异常。