[5/10 AcceptEx] Implements register_socket_listener and DECL_HANDLER(register_socker_listner)

Scott Lindeneau slindeneau at gmail.com
Wed Sep 3 16:09:43 CDT 2008


sock.c: register_socket_listener sets up and maintains lists of
dependent sockets. register_socket_listner queues a FILE_READ_DATA async
request on the listening socket.

register_socket_listener takes two socket handles and the necessary
information to setup an async request complete with callback
information. The two socket handles correspond to a listening socket and
an accepting handle. It also queues a FILE_READ_DATA async on the
listening socket.

This function provides the setup for acceptex in the wineserver. The
wineserver is responsible for accepting a connection from a listening
socket onto an accepting socket BEFORE it wakes up any async read
requests. If the wineserver does not do this before passing control back
to the user thread in the dll race conditions exist between the user
threads and the wineserver thread. For this reason we maintain a second
list of pending connections and dependent connections.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 0005-Implements-register_socket_listener-and.txt
Url: http://www.winehq.org/pipermail/wine-patches/attachments/20080904/6b3818dd/attachment-0001.txt 


More information about the wine-patches mailing list