Skip to content

Commit 9912225

Browse files
committed
eloop: Fix kqueue on FreeBSD
1 parent 20cee56 commit 9912225

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/eloop.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -247,8 +247,13 @@ eloop_event_add(struct eloop *eloop, int fd, unsigned short events,
247247
struct eloop_event *e;
248248
bool added;
249249
#if defined(USE_KQUEUE)
250-
struct kevent ke[2], *kep = &ke[0];
251-
size_t n;
250+
#ifdef EVFILT_PROCDESC
251+
#define NKE 3
252+
#else
253+
#define NKE 2
254+
#endif
255+
struct kevent ke[NKE], *kep = &ke[0];
256+
size_t n = NKE;
252257
#elif defined(USE_EPOLL)
253258
struct epoll_event epe;
254259
int op;
@@ -286,7 +291,6 @@ eloop_event_add(struct eloop *eloop, int fd, unsigned short events,
286291
e->cb_arg = cb_arg;
287292

288293
#if defined(USE_KQUEUE)
289-
n = 2;
290294
if (events & ELE_READ && !(e->events & ELE_READ))
291295
EV_SET(kep++, (uintptr_t)fd, EVFILT_READ, EV_ADD, 0, 0, e);
292296
else if (!(events & ELE_READ) && e->events & ELE_READ)

0 commit comments

Comments
 (0)