2012-06-01 47 views
1

我在GNURadio程序中使用Python time.sleep()函数。但是,尽管我提供了一个浮点参数,但代码会运行到意外的浮点异常。请从下面的相关代码段(请忽略调试“和合”的:-)):Python time.sleep()运行到浮点异常

while not ack and timeout < 5: #FIXME: Hard-coded timeout interval 
    print "Hehe5" 
    timeout+=1 
    print "Hehe6" 
    time.sleep(0.5) 
    print "Hehe7" 
    with lock: 
     ack=recvd_prev_ack 
    print "Hehe8" 

这给出了以下的输出:

Sent pktno= 0 
Hehe 
Hehe1 
Hehe2 
Hehe3 
Hehe4 
Hehe5 
Hehe6 
Floating point exception 

所以错误的点真的是时间。睡觉()。有人可以解释一下这里可能会发生什么吗?我的Python版本是2.7.1。

感谢和问候, Dhrubo

+0

有趣......认为你可以从控制台发布实际错误。我希望它有更多的细节,这将是有用的 – inspectorG4dget

+0

你的缩进是错误的。请修复它。 –

回答

3

这是怎么回事这里是你的程序有螺纹,而浮点异常在另一个线程中发生的(不是你想)。

+0

感谢您的回复。我找到了错误的根源。这确实是由于第二个正在运行的线程。 :-) – dhruboroy29

+0

我认为你不会得到一个回溯,因为错误不会发生在你的主线程中。也许看到这里如何获得其他线程的追踪:http://stackoverflow.com/questions/875453/printing-daemonic-thread-exceptions-in-python – Gerrat