2013-05-06 5 views
0

У меня плохое время, выясняя, почему программа задержавшись на неопределенный срок, т.е. проявляющий бесконечную петлю, как поведениеПравильная настройка signal.setitimer()

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(), правильно? Затем таймер сбрасывается, а остальная часть оператора, , где же программа возобновляет выполнение?

Спасибо за помощь!

ответ

0

Я предполагаю, что он вернется к месту, где таймер прервался?

Смежные вопросы