--- nono/lib/kevent.h 2026/04/29 17:05:08 1.1.1.2 +++ nono/lib/kevent.h 2026/04/29 17:05:44 1.1.1.3 @@ -43,7 +43,16 @@ static inline int kevent_add(int kq, int fd, int filter, int action, int udata) { struct kevent kev; + int r; EV_SET(&kev, fd, filter, action, 0, 0, EV_INT2UDATA(udata)); - return kevent_set(kq, &kev, 1); + r = kevent_set(kq, &kev, 1); +#if defined(__linux__) + // libkqueue は負数を返すけど errno == 0 ということがあり、 + // どういうことか分からないけど、とりあえず正常扱いしておく。 + if (r < 0 && errno == 0) { + r = 0; + } +#endif + return r; }