Как выполнить мультиплексирование ввода / вывода на несекретных FD в Windows? (Python) - PullRequest
1 голос
/ 05 апреля 2020

Я пишу asyn c framework в Python, вы можете проверить это здесь, на GitHub . Я успешно реализовал базовую функциональность c, и теперь мне нужно сделать файловый ввод-вывод и, надеюсь, сделать его кросс-платформенным. Я знаю, что windows не может обрабатывать потоки, которые не происходят из WinSock (я использую модуль python selectors, так как он имеет API более высокого уровня). Я знаю, что такие библиотеки, как trio или curio могут выполнять такие операции asyn c file I / O на любой платформе. Интересно, как мне реализовать такую ​​функциональность?

1 Ответ

0 голосов
/ 19 апреля 2020

Каждый делает это, порождая фоновые потоки, которые используют внутреннюю блокировку ввода-вывода. Встроенная поддержка ввода-вывода asyn c настолько нарушена и отличается в каждой ОС, что использование потоков и нормального ввода-вывода является единственно возможным вариантом. Даже Linux не понял это правильно. Смотрите комментарий от njsmith https://github.com/python-trio/trio/issues/20#issuecomment -306107585

...