cURL / Mailing Lists / curl-library / Single Mail


Re: Project hiper - High Performance libcurl

From: Cory Nelson <>
Date: Fri, 4 Nov 2005 13:25:40 -0600

On 11/4/05, Daniel Stenberg <> wrote:
> On Thu, 3 Nov 2005, Cory Nelson wrote:
> > I assume this means you will be wrapping platform-specific high performance
> > socket apis. Do you have a wrapper api written up? I'd be happy to help
> > with IOCP in Win2k.
> No, that's actually not part of the plan. I'm focusing on allowing high
> performance event systems to replace the select()-centric approach the current
> multi interface suffers from. Or perhaps this is what you meant?

Windows has I/O Completion Ports. Basically: you associate your
sockets with a completion port, then you make a thread pool to
retrieve results from the completion port. It is fairly simple to
wrap this so you recieve a callback once an operation is complete.

I don't think this maps very well to your API... perhaps we can
discuss this further to make sure both platforms perform efficiently.
I'll be gone today but will write up some basic code for you to get
the idea of how IOCP handles sockets.

> Of course, I'm not sure how that will benefit or affect Windows users as I
> don't know if there are any high performance event systems that are portable
> enough to work more or less similar on Windows as on *nix.

They aren't similar. Platforms will need seperate wrappers.

> I just added more docs to the hiper section of the web site to show the
> current API suggestion and a sample app I wrote up a while ago.
> --
> Commercial curl and libcurl Technical Support:

Cory Nelson
Received on 2005-11-04