我很难理解为什么程序会无限期地暂停,也就是显示出无限循环的行为。
def class foo():
'''
...
'''
def __catcher(self, signum, _):
print "TIME OUT EXCEEDED"
# Reset timer
signal.setitimer(signal.ITIMER_REAL, 0.0, _SENDERTMOUT_)
# Do something
for i in range (self.base, self.next_seqno):
'''
...
'''
def start(self):
while something:
'''
Start doing some work
'''
if self.base == self.next_seqno:
old_handler = signal.signal(signal.SIGALRM, self.__catcher)
signal.setitimer(signal.ITIMER_REAL, _SENDERTMOUT_)
'''
Do more work until timer goes off
'''也许我不知道执行的顺序,当在start()中计时器超时时,程序跳到__catcher(),对吗?然后计时器被重置,其余的语句,,那么程序在哪里恢复执行?
谢谢你的帮助!
发布于 2013-08-07 18:11:54
我想它又回到计时器打断的地方了?
https://stackoverflow.com/questions/16403017
复制相似问题