2015-07-12 9:45 GMT-03:00 Jonathan de Boyne Pollard: > > The problem here is that inotify is waking kevent() up because you listed > the directory.
The exact same thing (wakeup and read() with EINVAL error) happens if service-control, service-show, service-is-ok and other service-* commands are used on the service. And if the bundle directory has a proper service/ subdirectory; no user action required to trigger it in this last case. > This will be a tricky one for the libkqueue people to fix The libkqueue people might be just Mark Heily :-/ > But it is a libkqueue problem to be fixed. All that > service-dt-scanner is doing is registering just one event of interest, and > calling kevent() in a fairly tight loop that's in fact doing nothing else > (apart from dumping the value of the spurious event). That's... unfortunate :-( Have you ever considered just writing a BSD backend using kqueue / kevent, and a Linux backend using epoll / inotify or whatever native Linux mechanism is available to suit nosh's needs? I believe you mentioned there's quite a few conditional compilation already to work around libkqueue issues, and you also already have "`uname` = FreeBSD" and "`uname` = Linux" tests in the .do files. Anyway, thank you for your time :-) G.
