[Dovecot] Patch: ioloop using kqueue/kevent for FreeBSD

Vaclav Haisman V.Haisman at sh.cvut.cz
Wed Dec 14 22:04:29 EET 2005



On Wed, 14 Dec 2005, Timo Sirainen wrote:

> On Wed, 2005-12-14 at 17:42 +0100, Vaclav Haisman wrote:
>> Only after posting the first patch I realised it is not good enough wrt/
>> IO_ERROR handling. The attached patch should be better.
>
> Thanks, committed. I did a few minor changes so that it's consistent
> with Dovecot's coding style. Also a few other changes:
I will try to follow the style.

>
> - unsigned char mode:3; -> enum io_condition in the struct. More
> readable and it doesn't use more space anyway unless you're going to add
> more fields.
>
> - memset() isn't needed after p_new(), it's already guaranteed to be
> zeroed.
Ok, I will remember this.

>
> I'm not sure if the IO_ERROR handling isn't exactly correct. Can a
> callback be called twice there when error happens? Anyway, IO_ERROR
> isn't currently used anywhere. I added it for code that's going to be in
> Dovecot 2.0 where it needs to know when pipe gets closed.
I thought about this too. Maybe it can be fixed if its sole purpose is to 
watch out for pipe/socket getting disconnected. The EV_EOF flag should do 
just that.

>
> What are the AC_CANONICAL_* macros in configure.in? I didn't add them.
I needed these to make the libtool I use work.

It would be nice if somebody with FreeBSD or NetBSD could test this patch a 
little bit under heavier load. My options are in this respect limited.


Vaclav Haisman


More information about the dovecot mailing list