>>I'm thinking that the GLE you get is actually the GLE set by the socket operation.

Yes this is what I said previously when I mentioned before that GLE will return the standard winsock error codes for any socket errors.

>>Also, the problem again is that the possible GLE codes are *not* documented.

The winsock error codes are documented.  If it's another error code, do you really care?

>>We may assert we *believe* we'll get ERROR_SUCCESS in case 4 and never in case 3, but how can we *know*?

GLE is the standard error mechanism for any type of windows programming.  Regardless as to what the value of the specific error actually *IS* the fact that it is set to something other than 0 indicates an error. I have NEVER seen anyone use an error code of 0 before to indicate failure, and especially not in the standard Windows API. 



Regardless if GetQueuedCompletionStatus == 0 and lpOverlapped != NULL, you can't do anything else on that socket.
If GLE != 0 treat it as an error and log a message or what not
If GLE == 0 assume a normal closure.

That's the way my code works, and I've never seen a problem with it before.

_______________________________________________
Libevent-users mailing list
Libevent-users@monkey.org
http://monkey.org/mailman/listinfo/libevent-users

Reply via email to