On Tue, Nov 06, 2007 at 05:09:07PM +0100, Marc Lehmann wrote: > Hi! > > While trying to port libev to win32, I ran into a number of issues with > libevent proper (which of course still is the major part of the sources). > > Specifically: > > - evdns.c, httpc and other files include include files such as unistd.h, > which are not available under windows. consequently, they do not even > compile on win32 (tested with the visual c compiler).
Ah. It's been a while since I tried to build with anything other than
mingw. Wrapping these includes in #ifdef HAVE_UNISTD_H would be the
right solution. Can you (or anybody) send in a diff?
> - is WIN32-Code/win32.c really the production-ready win32 backend?
> I can hardly believe this, as its basically not doing anything that
> the select backend doesn't do better and faster (for example, the win32
> backend does a linear search over all(!) registered event watchers
> on each event_add/event_del/select call).
It is indeed the production win32 backend. I wish it were faster.
Somebody should send in a diff.
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.
> additionally, signals are not being handled correctly (race conditions)
> on win32, but thats likely not a big deal on that platform.
win32 signals simply don't work on 1.3e. I've tried to fix them in
trunk. If there are any race conditions there, please let us know.
> 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. :)
yrs,
--
Nick Mathewson
pgpG0R07oXq6d.pgp
Description: PGP signature
_______________________________________________ Libevent-users mailing list [email protected] http://monkeymail.org/mailman/listinfo/libevent-users
