Что это за инверсия?Сделать поток read() блокировки
fcntl.fcntl(MyStream.fileno(), fcntl.F_SETFL, os.O_NONBLOCK)
Я попытался
fcntl.fcntl(MyStream.fileno(), fcntl.F_SETFL, os.O_BLOCK)
, но это приводит к AttributeError: 'module' object has no attribute 'O_BLOCK'
.
Чтобы дать небольшой фон, я собираю данные в кусках в STDIN процесса popen
. Если в STDOUT есть данные, мне нужно сразу же прочитать их и передать обратно клиенту (следовательно, переключиться на неблокирование). Однако, когда я закончил данные о трубопроводах, мне нужно заблокировать, пока я не получу EOF в STDOUT. (? В идеале кросс-платформенный)
Если есть лучший способ сделать это, то я все уши
Спасибо, что сделали это – Basic