1

我在 GNURadio 程序中使用 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

所以错误点确实是time.sleep()。有人可以解释一下这里会发生什么吗?我的 Python 版本是 2.7.1。

谢谢和问候, Dhrubo

4

1 回答 1

3

这里发生的事情是您的程序是线程化的,并且浮点异常发生在另一个线程中(不是您认为的)。

于 2012-06-01T22:48:03.837 回答