[PATCH] Overlapped recv(), WSARecv()

lawson_whitney at juno.com lawson_whitney at juno.com
Thu Jan 17 12:23:40 CST 2002

On 17 Jan 2002, Martin Wilck wrote:

> As you may see from the different email address, I am currently off work
> - I'll look deeper into your traces next week.
> Many thanks for generating them, anyway.
> >From a first glance, it seems that the app doesn't do overlapped recv().
> (lpOverlapped & completion_func are always NULL), so there should
> actually be no difference (well I'm now using recvmsg() instead of
> recv(), and the overhead for 16 bit Winsock apps is definitely larger,
> but I cannot see why that should slow everything down that much).
> Perhaps I screwed up the blocking semantics of non-overlapped IO.

That's what it looks like to me.
> Have you generated the traces under exactly the same conditions?
> Can you explain what exactly you did?
> Martin
To have exactly the same data being transferred, I would have to control
both ends of the line, I think.  I didn't do that.

What exactly do you mean, "what exactly I did?" ;-)

I have 2 versions of what is essentially the same app, a - well,
functionally, it is sendmail/fetchmail:  juno 2 and juno 4.  I am not
sure what protocol[s] it uses, but the app's internal logs mention
postoffice, so maybe some perversion of POP3 or so.  Anyway, start the
app and it connects to its server, sends any mail queued to go out, and
receives any mail the server has, and any ads the server sees fit to
give it.  I think it compresses/decompresses the data itself.

I applied the patches.

I sent this by juno 4 without trace:

Message-ID: <20020116.183513.134657248.0.lawson_whitney at juno.com>

The app reported it failed to fetch my mail, try again later.

I tried again with a winsock trace, and it succeeded, producing socks.gz

I then ran juno 2 with trace, producing winsock.gz.

I reversed the patches, which took some time to compile and traced juno
4 again, producing sox.gz...

Put it this way:
socks.gz and sox.gz are exactly the same app with and without the

winsock.gz and winsox.gz are a different version of the app, with and
without the patches.

Actual traffic is different for each session, but the pattern for each
should be the same, if that makes any sense to you.


More information about the wine-devel mailing list