kqueue で EV_DISABLE と EV_ENABLE の使用例を理解しようとしています。
int KQueue = kqueue();
struct kevent ev = {
.ident = fd,
.filter = EVFILT_READ,
.flags = EV_ADD | EV_DISABLE,
.udata = somePtr
};
kevent(KQueue, &ev, 1, NULL, 0, NULL);
...
struct kevent ev = {
.ident = fd,
.filter = EVFILT_READ,
.flags = EV_ENABLE
};
kevent(KQueue, &ev, 1, &ev, 1, NULL);
現在、 への最後の呼び出しがkevent()
戻ると、ev.udata
代わりNULL
にsomePtr
. kevent()
イベントを有効にするだけでなく、EV_ADD が設定されていなくてもポインターを更新する場合udata
、無効なイベントを追加できるようにする理由は何ですか?