[axel-devel] Axel porting to WIN32 without Cygwin

Zhai Xiang xiangzhai83 at gmail.com
Fri Feb 24 13:42:39 UTC 2012


Hi, Axel developers:

I ported Axel v2.4 to NATIVE WIN32 without Cygwin, what I did in the
#if WIN32 ... #endif, for example:
Changed Linux file descriptor for the new socket to WIN32 SOCKET
descriptor referencing the new socket;
Changed close, write, read to closesocket, send, recv;
Changed pthread_t for the thread to HANDLE referenced the thread;
Changed pthread_create, pthread_join, pthread_cancel to CreateThread,
WaitForSingleObject, TerminateThread.

SVN goes here http://xsandbox.googlecode.com/svn/trunk/axel-win32/

Is there someone want to join in porting to NATIVE WIN32 project?

Be short of test/QA/DEBUG, for example, I did not test Axel for FTP protocol.
And hunting the BUG, when set the max number of connections to 1 such
as IIS, Axel WIN32 consider as no connection yet but still waitting.

There is already poll provided by Linux Kernel to determines the
status of one or more file descriptor,
waiting if necessary, to perform Asynchronous I/O. And there is
WSAPoll supported only by
Windows Vista, 7 && Server 2008 to determines status of one or more
sockets, what's more,
overlapped IO supported by more Windows distribution.
So It is better to change the select fd_set (have a look at axel_do
API in axel.c __FILE__) to more efficient way.

Xiang Zhai



More information about the axel-devel mailing list