Date: Wed, 7 May 2003 22:21:02 -0700 (PDT) From: Neelkanth Natu <neelnatu@yahoo.com> To: Snofe Deng <dsnofe@hotmail.com>, freebsd-net@freebsd.org Subject: Re: Problem about kqueue. Message-ID: <20030508052102.14548.qmail@web14204.mail.yahoo.com> In-Reply-To: <20030506200419.D011.DSNOFE@hotmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--- Snofe Deng <dsnofe@hotmail.com> wrote: > If I register: > {ident, EVFILT_READ} > {ident, EVFILT_WRITE} > {ident, EVFILT_TIMER} > pairs to kq;and all the piar with same ident which is a socket descriptor. > then I close(2) ident. Does this mean that all these three > {ident, filter} pairs will be removed just after the descriptor isclosed? No. The EVFILT_TIMER ident has a different namespace than the file descriptor namespace. The fact that the ident value for TIMER is the same as the socket fd is of no significance. > or should I use: > EV_SET(&evs, ident, EVFILT_READ, EV_DELETE, 0, 0, NULL) > EV_SET(&evs, ident, EVFILT_WRITE, EV_DELETE, 0, 0, NULL) > EV_SET(&evs, ident, EVFILT_TIMER, EV_DELETE, 0, 0, NULL) > to delete these three pairs? > > when I just closed the socket descriptor, the {ident, > EVFILT_READ/EVFILT_WRITE} are removed. but {ident, EVFILT_TIMER} > is still returned at next kevent(2) loop. Is it a bug? or why should > this happend? It is not a bug. Calling a close on a file descriptor will remove all kevents associated with that fd. So you don't have to explicitly delete them. However if you want to remove the EVFILT_TIMER event too, you have two choices: - Use EV_ONESHOT to automatically delete the kevent once it is delivered. - Explicitly delete it as you are doing above. best Neel > > when I use the second way, things worked ok. > Any one can help me? > thanks a lot! > > -- > Snofe Deng <dsnofe@hotmail.com> > > > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" __________________________________ Do you Yahoo!? The New Yahoo! Search - Faster. Easier. Bingo. http://search.yahoo.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030508052102.14548.qmail>