これの逆は何ですか?
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'
.
少し背景を説明するために、データをチャンクでpopen
'ed プロセスの STDIN にパイプしています。STDOUT で待機しているデータがある場合は、すぐに読み取ってクライアントに戻す必要があります (したがって、ノンブロッキングに切り替えます)。ただし、データのパイプ処理が完了したら、STDOUT で EOF を取得するまでブロックする必要があります。
これを行うためのより良い方法がある場合 (理想的にはクロスプラットフォーム?)、私はすべて耳にします