On 05.03.2012 20:12, Sergey Matveychuk wrote:
Hi.I've met a problem with the subj. Could you help? I'm watching for a directory: EV_SET(kq_change_list, fd, EVFILT_VNODE, EV_ADD | EV_ENABLE | EV_ONESHOT, NOTE_DELETE | NOTE_WRITE | NOTE_EXTEND | NOTE_ATTRIB, 0, 0); When the directory changed, I read its contens with opendir, like that: struct kq_event kq_event[1000]; ... while(1) { n = kevent(kq, kq_change_list, chlist_used, kq_event, 1000, NULL); for(i = 0; i < n; i++) { if(kq_event[i].fflags & NOTE_EXTEND || kq_event[i].fflags & NOTE_WRITE) { opendir(.....) It works when I create a few files (1-3), but when I create 10 files with touch(1) I see only 3-6 files with opendir. I've got only one event with kevent() (n=1). Looks like I should got a few events, but I did not. Could you give an advice how to get all created files?
Try to put some delay (~10ms) after your call to kevent(). Markiyan.
_______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[email protected]"
_______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[email protected]"

