У меня есть именованный канал, созданный с помощью команды os.mkfifo (). У меня есть два разных процесса Python, обращающихся к этому именованному каналу, процесс A читает, а процесс B пишет. Процесс A использует функцию выбора, чтобы определить, когда есть данные, доступные в fifo / pipe. Несмотря на то, что процесс B сбрасывается после каждого вызова записи, функция выбора процесса A не всегда возвращается (она продолжает блокироваться, как будто нет новых данных). После тщательного изучения этой проблемы я, наконец, просто запрограммировал процесс B для добавления 5 КБ записей мусора до и после моего реального вызова, а также процесс A запрограммирован на игнорирование этих 5 КБ. Теперь все работает нормально, а select всегда возвращается соответствующим образом. Я пришел к этому хакерскому решению, заметив, что select процесса A вернется, если процесс B будет уничтожен (после записи и сброса он будет спать в канале чтения). Есть ли проблема с сбросом в Python для именованных каналов?