【发布时间】:2015-01-25 03:01:48
【问题描述】:
我遇到了一个不知道如何调试的错误。错误是Exception: (Unix.Unix_error "Too many open files" pipe "")。我没有打开任何文件,只打开了一个 Unix 进程。有人对如何调试有一些提示吗?
导致错误的函数是:
let rec update_act_odrs ?(sec_to_wait = 0.0) () =
try
(act_odrs := active_orders ())
|> fun _ -> Lwt_io.print "active_orders Updated\n"
with _ ->
Lwt_unix.sleep sec_to_wait
>>= update_act_odrs ~sec_to_wait:(sec_to_wait +. 1.0)
active_orders () 是一个从服务器获取 JSON 数据的函数。
【问题讨论】:
-
也许
active_orders函数可以打开文件?无论如何不要想lwt,sleep和print不要打开任何文件。