[Dovecot] 1.0-test75 and roadmap for v1.0
Dominic Marks
dom at goodforbusiness.co.uk
Tue Jul 12 18:07:49 EEST 2005
On Sunday 03 July 2005 23:01, Dominic Marks wrote:
> On Sunday 03 July 2005 22:49, Timo Sirainen wrote:
> > On 1.7.2005, at 02:55, Dominic Marks wrote:
> > > Any chance of kqueue support for us BSD users? I think the diff
> > > I have could probably be the basis of support for it.
> >
> > Could you fix the XXX part of it? There are no longer any
> > priorities in I/O loop so it could be made faster I think?
I had a crack at this, but I couldn't get things working right.
I'll keep on fiddling with it.
> Sure.
>
> > Also what exactly do you mean with this:
> >
> > * changing this to i_fatal is debatable, however
> > * if you do so you will potentially expose the case
> > * where a process receives the client from a socket
> > * then closes the listening socket, experiences an
> > * error and calls exit, dropping the client we just
> > * picked up
> >
> > io_loop_handle_remove() should always be called before close(), so
> > kevent() should never fail. What am I missing?
Seems to be the other way around, since I can work around the
warning by using fstat to check if the descriptor is in use. I
currently have this:
if (kevent(data->kq, &data->event, 1, NULL, 0, NULL) < 0) {
if (fstat(fd, NULL) == 0) {
/*
* Trying to remove filters on a closed descriptor
* will cause kevent(2) to return an error. If we
* sure that descriptors are ALWAYS closed before
* this function we can delete the entire function
* body.
*/
i_warning("couldn't remove filter on fd %d with kqueue: %m", fd);
}
}
> I'll investigate, and see what I can come up with.
>
> Cheers,
Thanks,
--
Dominic Marks
More information about the dovecot
mailing list