Check for Mac OS X 10.4 kqueue bug properly

[ Upstream commit df6f99e5 ]
[ Fixes: #377 ]

EV_ERROR is a bit in struct kevent::flags. Other bits may be set too.

Actually we have osx builds on travis-ci, but it uses osx 10.9.5, and we don't
have warnings there, since I guess that there is no OR'ing with previous flag
in case of error, while in 10.12 there is OR.

Fixes: #377
Fixes: #376
Link: https://crbug.com/626534
Link: https://travis-ci.org/libevent/libevent/jobs/141033429
This commit is contained in:
Mark Mentovai 2016-07-08 09:43:39 -04:00 committed by Azat Khuzhin
parent b2beaad668
commit 6762a4d653
No known key found for this signature in database
GPG Key ID: B86086848EF8686D

View File

@ -150,7 +150,7 @@ kq_init(struct event_base *base)
if (kevent(kq,
kqueueop->changes, 1, kqueueop->events, NEVENT, NULL) != 1 ||
(int)kqueueop->events[0].ident != -1 ||
kqueueop->events[0].flags != EV_ERROR) {
!(kqueueop->events[0].flags & EV_ERROR)) {
event_warn("%s: detected broken kqueue; not using.", __func__);
goto err;
}