我现在正在使用sbcl 1.0.57.0,我的程序在shell中生成恒定的输出,直到在某一时刻,我的程序完全冻结,没有任何线索。
C-c和down,显示最后一次呼叫是:
(SB-SYS:WAIT-UNTIL-FD-USABLE 6 :INPUT NIL NIL)我重新启动了我的程序,并尝试了一次,程序再次冻结,C-c向下显示这个调用是最后一个调用。过了一段时间,我没有测量确切的时间,但它应该大约在5分钟左右,程序继续了很短的时间,然后再次冻结。
要将调用放入上下文:跟踪中的第一个熟悉的调用是drakma:http-request。但是,它本身使用的完整调用不会导致冻结。
现在我想知道这个电话到底做了什么,这是否是程序冻结的原因?
如果这个电话与我的问题无关,那么这个问题的第二部分将要求你具有洞察力,我的最后一个问题是:这个调用是做什么的?
发布于 2012-10-20 19:45:40
(描述sys:等待-fd-可用)给出:
WAIT-UNTIL-FD-USABLE names a compiled function:
Lambda-list: (FD DIRECTION &OPTIONAL TIMEOUT)
[...]
Documentation:
Wait until FD is usable for DIRECTION. DIRECTION should be either :INPUT
or :OUTPUT
TIMEOUT, if supplied, is the number of seconds to wait before giving up.调用的目的似乎是等待(没有任何超时)直到文件描述符6可用,但问题是函数使用4个参数调用,而它需要2或3个参数吗?
发布于 2015-08-01 16:03:38
虽然从技术上讲,我没有问这个问题,但我想添加关于这个主题的最新信息,以防其他人在类似的情况下寻找这个问题。
使用drakma:http-request出现了这个问题。我现在能够为一个特定的请求编写一个概念证明,并将其作为一个问题发布在drakma页面上。在sbcl中,drakma似乎没有提供超时,因此(SB-SYS:WAIT-UNTIL-FD-USABLE 6 :INPUT NIL NIL)等待信息到达,在本例中没有超时:https://github.com/edicl/drakma/issues/67。
https://stackoverflow.com/questions/12990919
复制相似问题