【问题标题】:Properly configuring signal.setitimer()正确配置 signal.setitimer()
【发布时间】: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


    【解决方案1】:

    我猜它会回到计时器中断的地方?

    【讨论】:

      猜你喜欢
      • 2013-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-09
      • 2023-03-23
      相关资源
      最近更新 更多