Ошибка опроса многопроцессорного канала PythonPython

Программы на Python
Anonymous
Ошибка опроса многопроцессорного канала Python

Сообщение Anonymous »

Используя каналы для взаимодействия процессов с многопроцессорной библиотекой, я заметил странное поведение функции опроса. Если я закрою другой конец трубы, poll() вернет true, что довольно странно. Документы Python на самом деле не говорят, чего ожидать. Тем не менее я думал, что poll() по крайней мере вернет false, если в канале определенно ничего нет, а другой конец даже закрыт. Я использую python3.3.2, но, похоже, то же самое касается Python 2.7.5. Это задумано или это ошибка, и если это не ошибка, для чего она нужна?

import multiprocessing

if __name__ == '__main__':

con = multiprocessing.Pipe(True)
con1, con2 = con

print(str(con1.poll())) #prints False
con2.close()
con1.close()

con = multiprocessing.Pipe(True)
con1, con2 = con

con2.close()
print(str(con1.poll())) #prints True
con1.close()


Подробнее здесь: https://stackoverflow.com/questions/194 ... e-poll-bug

Вернуться в «Python»