diff --git a/src/backend.cmod b/src/backend.cmod index db5430a8014d4c1de7bbeea469a7652130d59992..e66d70af000ed9c5b9794fcef4c354af4254b5b5 100644 --- a/src/backend.cmod +++ b/src/backend.cmod @@ -3522,13 +3522,18 @@ PIKECLASS PollDeviceBackend struct timespec tv; struct PollDeviceBackend_struct * this_backend; int fd; + int numevts; tv.tv_sec = 0; tv.tv_nsec = 0; this_backend = (struct PollDeviceBackend_struct *)info; fd = CFFileDescriptorGetNativeDescriptor(fdref); - kevent(fd, NULL, 0, this_backend->poll_fds, POLL_SET_SIZE, &tv); - this_backend->event_count = POLL_SET_SIZE; + numevts = kevent(fd, NULL, 0, this_backend->poll_fds, POLL_SET_SIZE, &tv); + if (numevts >= 0) + this_backend->event_count = numevts; + else + Pike_error("kevent failure in noteEvents for fd %d (errno: %d).\n", + fd, errno); } #endif /* BACKEND_USES_CFRUNLOOP */