
Cory Nelson wrote:
Looking at the .NET async methods, they are using WSARecv() etc. Maybe those use a global completion port underneath it all? If so, where did you get the source for Winsock :P
I don't have the source. :) Someone at Microsoft told me: http://groups.google.de/groups?hl=de&lr=&frame=right&th=f2ca7a6315ffc037&seekm=%23az8UYCSEHA.1256%40TK2MSFTNGP09.phx.gbl#link10
Perhaps I should have been more clear. When implementing completion ports, in win32 at least, you aren't limited by callbacks for socket functions but can also loosely manage your threads and push custom messages to them. I could understand why the custom messages might be out of scope (though it is very useful) of Boost.Socket, but managing the threads (even minimally, just to choose how much threads to start) is a must.
But this implies that an interface for asynchronous access is based on threads. I think I will assume for now that we have a synchronous and an asynchronous model with the details hidden in the implementation and will work my way top-down. Maybe we can create another small class hierarchy with two parent classes synchronous and asynchronous and leave configuration details to their children? Boris
[...]