$NetBSD: patch-aa,v 1.4 2009/12/10 19:26:22 fhajny Exp $ --- ext/em.cpp.orig 2009-12-10 21:13:48.000000000 +0100 +++ ext/em.cpp @@ -1347,7 +1347,11 @@ int EventMachine_t::DetachFD (EventableD if (bKqueue) { // remove any read/write events for this fd struct kevent k; +#ifdef __NetBSD__ + EV_SET (&k, ed->GetSocket(), EVFILT_READ | EVFILT_WRITE, EV_DELETE, 0, 0, (intptr_t)ed); +#else EV_SET (&k, ed->GetSocket(), EVFILT_READ | EVFILT_WRITE, EV_DELETE, 0, 0, ed); +#endif int t = kevent (kqfd, &k, 1, NULL, 0, NULL); if (t < 0 && (errno != ENOENT) && (errno != EBADF)) { char buf [200]; @@ -1622,7 +1626,11 @@ void EventMachine_t::ArmKqueueWriter (Ev if (!ed) throw std::runtime_error ("added bad descriptor"); struct kevent k; +#ifdef __NetBSD__ + EV_SET (&k, ed->GetSocket(), EVFILT_WRITE, EV_ADD | EV_ONESHOT, 0, 0, (intptr_t)ed); +#else EV_SET (&k, ed->GetSocket(), EVFILT_WRITE, EV_ADD | EV_ONESHOT, 0, 0, ed); +#endif int t = kevent (kqfd, &k, 1, NULL, 0, NULL); if (t < 0) { char buf [200]; @@ -1644,7 +1652,11 @@ void EventMachine_t::ArmKqueueReader (Ev if (!ed) throw std::runtime_error ("added bad descriptor"); struct kevent k; +#ifdef __NetBSD__ + EV_SET (&k, ed->GetSocket(), EVFILT_READ, EV_ADD, 0, 0, (intptr_t)ed); +#else EV_SET (&k, ed->GetSocket(), EVFILT_READ, EV_ADD, 0, 0, ed); +#endif int t = kevent (kqfd, &k, 1, NULL, 0, NULL); if (t < 0) { char buf [200]; @@ -1695,7 +1707,11 @@ void EventMachine_t::_AddNewDescriptors( // INCOMPLETE. Some descriptors don't want to be readable. assert (kqfd != -1); struct kevent k; +#ifdef __NetBSD__ + EV_SET (&k, ed->GetSocket(), EVFILT_READ, EV_ADD, 0, 0, (intptr_t)ed); +#else EV_SET (&k, ed->GetSocket(), EVFILT_READ, EV_ADD, 0, 0, ed); +#endif int t = kevent (kqfd, &k, 1, NULL, 0, NULL); assert (t == 0); }