On Thu, 2018-02-01 at 20:13 +0000, Arek via Digitalmars-d-learn wrote: > […] > DInitify doesn't cover full capabilities of the inotify API. > Especially it doesn't utilize newer inotify_init1 syscall and > doesn't expose 'select' interface. > This C++ wrapper may be interesting for you: > https://github.com/erikzenker/inotify-cpp > But I haven't used it.
Hummm… sounds like I need to look to create a pull request to get to dinotify 0.2.3 or even 0.3.0. > > > […] > You may be right. But interrupting the thread is very low level > mechanism. > Eg in Java, it is incorporated into Thread class: thread has > method 'interrupt()' which > sets the flag, and there is property 'isInterrupted()'. Usually > your thread code have something like > while(!Thread.currentThread().isInterrupted()) { /* do > something*/ } > I would use similar pattern. I do want to avoid such low-level things, they may be required for building libraries, but they seem totally the wrong level of concept for an application. I am definitely headed to the (select|poll|epoll) on the inotify file descriptor to get the timeout, and then either read or check the input channel for termination or an atomic Boolean state variable. Channels seem most likely since parent threads send a terminating token. -- Russel. =========================================== Dr Russel Winder t: +44 20 7585 2200 41 Buckmaster Road m: +44 7770 465 077 London SW11 1EN, UK w: www.russel.org.uk
signature.asc
Description: This is a digitally signed message part