[Libevent-users] libevent win32 issues
Toby Douglass
toby.douglass at summerblue.net
Tue Nov 6 11:40:30 EST 2007
Nick Mathewson wrote:
> On Tue, Nov 06, 2007 at 05:09:07PM +0100, Marc Lehmann wrote:
> There are two factors that keep the select() implementation on win32
> from using the same strategy/code as the one :
>
> 1) win32's select() doesn't use bitfields; it uses an array of
> sockets. This is because...
>
> 2) win32 sockets, unlike unix fds, are not consecutively numbered
> integers starting at 0. Thus, it is _NOT_ a good idea to use an
> array to map fds to events like select.c does; your array would
> be enormous and sparse.
>
> A balanced tree implementation might an improvement here. It would be
> nice if somebody would step up and write one.
select() under win32 only works on sockets, so it's only purpose is socket
selection. Given that, select() is a poor choice - I/O completion ports
are much better; for one thing, they scale. libiocp exists, although I
don't know at all what would be involved in the integration with libevent.
>> Looking around with google it seems that indeed, evdns et. al does not
>> build on windows (except when using e.g. cygwin, but thats trivial).
>>
>> So I wonder if libevent as a whole is supported under windows at all in
>> current versions?
>
> I'd like to have everything work on win32. Trunk compiles on mingw
> fine. I would like it also to compile under MSVC, but I don't have a
> copy of MSVC. That's why diffs would be nice. :)
MS offer a free command line compiler and SDK. Given they're free and
compatable with the commercial build environments, would they be a viable
choice of Win32 build environment?
More information about the Libevent-users
mailing list