Вызов Lwt_process.pread_lines несколько раз
Я пытаюсь использовать 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. Я что-то пропустил?
Я должен быть ясен: он не зависает, программа завершает нормально. Просто никогда не вызывается то, что пытается использовать результат более поздних команд, первая работает нормально.
Спасибо