Должен заметить конечно, что решать проблемы в сервисах на уровне кофаундеров приятно, что уж там.
Я не понимаю одного. У меня родительский процесс создает pty, форкает ребенка и они типа связаны через этот pty. Ребенок пишет там все на stdout и exit(). Родительский процесс select()'ит соответствующий fd, и в самом конце происходит необъяснимое! когда все уже прочитано, внезапно еще раз триггерится select(), сообщая о готовности fd для чтения. родитель пытается читать и немедленно получает EIO. Примерно в районе этого события приходит SIGCHLD. ‎- псы в рапиде
я нихрена не понимаю, почему select() триггерится. я что-то не верю, что из pty fd уже нельзя читать когда ребенок вышел, ну верните EOF, чего там. может быть у меня в ребенке буферизованный IO, но какая разница родителю-то? он же видит только fd. ‎- псы в рапиде
непонятнее всего что поведение сохраняется при замене event loop на epoll. ‎- псы в рапиде
у меня некий диссонанс, потому что софтина написана копипастой даже не SO, а непосредственно док, а POE, насколько я знаю, стабилизировался в районе 2003 года и сейчас является сияющим столпом финальности. ‎- псы в рапиде
Это не совсем ответ на твой (незаданный) вопрос, но: https://github.com/ruby/ruby/blob/57fb2199059cb55b632d093c2e6... ‎- смешная третья опция
^ охренеть, я посмотрю в сорцы POE. спасибо! ‎- псы в рапиде
@earwin, ну да, автор IO::Tty явно знает, как создавать pty примерно на 20 разных платформах: http://cpansearch.perl.org/src/RGIERSIG/IO-Tty-1.02/Tty.xs все вызовы open там имеют O_RDWR (включая тот конкретный, который выполняется после ptsname). Буду страдать! Спасибо! ‎- псы в рапиде
Оо, POE! Я думал, я один этим пользуюсь :) ‎- Кубинский щелезуб
^ You are welcome. У меня начинает складываться впечатление, что человек-гугл это валидная профессия! ‎- смешная третья опция