On Wed, Oct 07, 2020 at 06:57:21PM +0200, Andrea Bolognani wrote:
On Wed, 2020-10-07 at 15:20 +0300, Roman Bolshakov wrote:
> for (i = 0; i < numpollfds; i++) {
> - if (fds[i].revents & (POLLIN | POLLHUP | POLLERR)) {
> + if (fds[i].revents & (POLLIN | POLLHUP | POLLERR |
> +# ifdef __APPLE__
> + /*
> + * poll() on /dev/null will return POLLNVAL
> + */
> + POLLNVAL)) {
> +# else
> + 0)) {
> +# endif
The fix seems legit, but having a preprocessor directive in the
middle of a function call doesn't look great. Can you rewrite this
along the lines of
for (i = 0; i < numpollfds; i++) {
short revents = POLLIN | POLLHUP | POLLERR;
# ifdef __APPLE__
/* On macOS, poll() on devices will return POLLNVAL */
revents |= POLLNVAL;
# endif
if (fds[i].revents & revents) {
/* ... */
}
}
please?
Sure, this looks much better, thanks!
Thanks,
Roman