Skip to content

Socket::select EPOLL implementation returns socket in exceptList when empty list is given #3655

@jfguo

Description

@jfguo

From help page of epoll_ctl like https://man7.org/linux/man-pages/man2/epoll_ctl.2.html
epoll_wait(2) will always report EPOLLERR despite whether it is set or not when calling epoll_ctl().

The problem of select's POCO_HAVE_FD_EPOLL implementation is,
when constructing the returning socket lists, sockets are not filtered based on the provided lists. Combined with epoll_wait's behaviour, this may return an error socket in the exceptList even calling function provides an empty list for exceptList.

POCO_HAVE_FD_POLL implementation does do filtering based on provided lists.

Seems an issue to me, at least makes the select has different behaviour in different implementations.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions