多次调用Lwt_process.pread_lines

时间:2018-09-04 13:28:33

标签: ocaml ocaml-lwt lwt

我正在尝试使用Lwt_process.pread_lines获取一些命令的输出。 在我的Lwt_main.run中,我调用它一次,然后通过Lwt_stream.map开始分别处理输出的每一行,效果很好。

尽管在该处理中,如果我调用另一个Lwt_process.pread_lines,它似乎被忽略了:

Lwt_process.pread_line cmd
>>= Printf.printf "blah %s\n"

我不生气,我什至没有例外。我尝试过pread_line和pread_lines,而>> =之后的任何内容都将被忽略。如果我使用|>,尽管它会被调用,但是当然我实际上需要使用输出。

我已经阅读了文档,并查看了Lwt_process的源代码,但是我没有看到任何表明您无法多次调用它的方法,它似乎为每个过程,至少在输出上。当然,我的外部进程根本不使用stdin,这只是对df命令的调用。 我想念什么吗?

我应该清楚:它不会挂起,程序确实可以正常运行。只是永远不会调用任何试图使用后续命令结果的东西,第一个可以正常工作。

谢谢

0 个答案:

没有答案