On Tue, Sep 06, 2011 at 12:52:31PM +0400, Maxim Dounin wrote:
Сама проблема выражается в том, что не ставится EV_EOF. Тестовая
программка прилагается. Она создаёт socketpair(), после чего
пишет в один из сокетов, и заводит kqueue смотреть за вторым.
Ожидаемое поведение: первый вызов kevent() возвращает EV_EOF, т.к.
сокет с той стороны уже закрыт, тест завершается. Именно такое
поведение наблюдается на FreeBSD и NetBSD.
На DragonFly BSD EV_EOF не ставится, вызывается второй kevent() и
ожидаемо виснет (потому как новых событий не происходит, а
используется EV_CLEAR).
А какая версия DragonFly ?