Ответ 1
Вы можете попробовать это.
import os, fcntl
fcntl.fcntl(thePipe, fcntl.F_SETFL, os.O_NONBLOCK)
При этом thePipe.read()
должен быть неблокирующим.
Из pipe (7) man page:
Если процесс пытается прочитать из пустой канал, затем прочитайте (2), чтобы заблокировать пока данные не будут доступны. (...) Неблокирующий ввод-вывод возможен, используя операция fcntl (2)
F_SETFL
для включить статус открытого файлаO_NONBLOCK
флаг.