Menu

#8 execute_delayed() sometimes executed directly

closed
nobody
None
5
2012-07-26
2010-06-09
Anonymous
No

I am experiencing really weird behaviour with my TriviaBot:

This is code sample:
def question_unanswered():
if(expect[0]==1):
server.privmsg(CHANNEL,"Noone answered right. Sorry folks, time is over!")
expect[0]=0
del answer[:]
server.privmsg(CHANNEL,"Add some questions to Trivia. Visit "+WEBURL)

def question_posture(connection,event):
if(event.arguments()[0]=="!trivia" and expect[0]==0):
connection.privmsg(CHANNEL,"Trivia question for "+str(result[0][3])+" point(s) will appear in 3 seconds...")
time.sleep(3)
connection.privmsg(CHANNEL,result[0][1])
posture.append(time.time())
connection.execute_delayed(11,question_unanswered)

sometimes, instead of waiting 11 seconds to execute question_unanswered() it's executed directly (same time.time() )

It occurs randomly about 1/6 of all tests...

Thanks for your time

Discussion

  • Spacexplosion

    Spacexplosion - 2012-04-16

    I am experiencing this as well. I am using a simple threading.Timer implementation for fn_to_add_timeout. I have verified that the callback of the timer (that calls process_timeout) is not being called but the command function does execute immediately. I think it has something to do with the combination of process_once calling process_timeout and bug ID: 3518508.

     
  • Jason R. Coombs

    Jason R. Coombs - 2012-04-17

    Now that #3518508 is fixed, is this still an issue?

     
  • Jason R. Coombs

    Jason R. Coombs - 2012-04-24

    I'm marking this as closed, assuming it is fixed in 0.6.4 and 0.7. If it is not, please re-open or leave a comment indicating that it is not fixed in those releases.

     
Monday.com Logo