Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Oct 2004 15:06:05 -0700
From:      Bruce M Simpson <bms@spc.org>
To:        "Ronald F. Guilmette" <rfg@monkeys.com>
Cc:        Igor Sysoev <is@rambler-co.ru>
Subject:   Re: aio_connect ?
Message-ID:  <20041023220605.GA810@empiric.icir.org>
In-Reply-To: <7208.1098550338@monkeys.com>
References:  <20041023002300.I91215@is.park.rambler.ru> <7208.1098550338@monkeys.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Oct 23, 2004 at 09:52:18AM -0700, Ronald F. Guilmette wrote:
> or kevent(), or aio_suspend().  Thus, I still do believe that the judicious
> use of the aio_*() functions with signaling could support a dramatically
> different programming style, especially for complex network clients and/or
> servers that must monitor and respond to events on various kinds of socket
> connections, all in the same single program.

As was pointed out earlier, it requires POSIX realtime signal support to
become useful in this way.

I have programmed in this way under Solaris, for what it's worth; I
implemented an httpd server using aio calls and real-time signals a
few years ago, and the performance as compared to a select()/poll()
based server turned out to be far worse, at least in terms of the
number of requests per second it was able to handle. I don't recall
specific figures.

So I would regard it as largely a red herring; the kqueue/kevent
mechanism will yield somewhat finer granularity in terms of polling
for an i/o completion event from userland on FreeBSD, which seems to
be what you're trying to achieve.

aio and realtime signals is something we don't really do at the moment.

Regards,
BMS


Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041023220605.GA810>