Using kqueue with 2 threads

Matthias Zitzen m.zitzen at o-notation.org
Mon Apr 16 07:36:08 UTC 2012


Hello,

Am 10.04.2012 21:52, schrieb Ben Short:
>>      EV_SET(&ke, fd, EVFILT_VNODE, EV_ADD, NOTE_DELETE | NOTE_RENAME |
>> NOTE_EXTEND, 0, NULL);
>>
>>      if (kevent(kq,&ke, 1, NULL, 0, NULL) == -1) {
>>          std::cerr<<  "kevent produced error: "<<  strerror(errno)<<
>> std::endl;
>>      }[/CODE]
>>

Did i understand right, that after registering and firing one event the 
kevent() function doesn't block any more?
If so, register the events with EV_ADD | EV_CLEAR. With this flag, the 
event state is cleared and kevent() is still blocking(man kqueue).
That flag was solving my problem...

Matthias


More information about the freebsd-questions mailing list