[gambit-list] Edge triggered I/O with libevent
Marc Feeley
feeley at iro.umontreal.ca
Tue Aug 30 23:34:58 EDT 2005
Really neat! I haven't tried it yet (I'm mostly using Mac OS X for
development) but it sounds promising. With this patch, heavily
loaded web-servers written with Gambit should have much better
performance.
Marc
On 19-Aug-05, at 9:54 AM, Adam Langley wrote:
> Gambit uses the select call on POSIX systems to multiplex IO
> operations. This is fine for small numbers of file descriptors, but
> falls apart quickly with large numbers[1].
>
> libevent[2] is a wrapper library around a number of modern IO
> multiplexing systems (epoll on Linux, kqueue on the BSDs as well as
> poll and select).
>
> Attached is a patch which converts Gambit to using edge triggered I/O
> with epoll and libevent. This also requires a patch (attached) of
> libevent since the standard distribution doesn't include edge
> triggering support and the upstream appears to be on holiday.
>
> (epoll is required because I don't have a BSD box on which to develop
> edge triggering support for kqueue)
>
> This patch (for Gambit) preprocesses away to nothing unless
> --enable-libevent is passed to the configure script. (Note that, since
> this patches the configure.ac script, you'll need to run autoconf to
> regenerate).
>
> I hope I've not broken anything, but at this stage I've only tested
> that the console and tcp ports work.
>
> This patch (in the future) should also allow people, who write
> programs which use socket calls directly, to integrate into the main
> event loop at some point.
>
> Testing is more than welcome and, if you find a form of IO which is
> broken, please email me.
>
> [1] http://monkey.org/~provos/libevent/libevent-benchmark2.jpg
> [2] http://monkey.org/~provos/libevent/
>
> --
> Adam Langley
> agl at imperialviolet.org
> http://www.imperialviolet.org (+44) (0)7906
> 332512
> PGP: 9113 256A CC0F 71A6 4C84 5087 CDA5 52DF 2CB6
> 3D60
>
> <libevent-1.1a-edge.agl.patch>
> <gambit-4b14-libevent-1-agl.patch>
> _______________________________________________
> Gambit-list mailing list
> Gambit-list at iro.umontreal.ca
> http://mailman.iro.umontreal.ca/mailman/listinfo/gambit-list
>
More information about the Gambit-list
mailing list