【发布时间】:2013-04-30 11:03:15
【问题描述】:
我很难弄清楚程序无限期暂停的原因,即表现出类似无限循环的行为
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()中timer超时的时候,程序跳转到__catcher(),对吧?然后定时器被重置,剩下的语句,那么程序在哪里恢复执行?
感谢您的帮助!
【问题讨论】:
标签: python sockets python-2.7 setitimer