On Wed, Sep 22, 2010 at 6:13 PM, James Mckenzie <jjmckenzi...@earthlink.net> wrote: > > > > -----Original Message----- >>From: Ricardo Filipe <ricardojdfil...@gmail.com> >>Sent: Sep 22, 2010 1:18 PM >>To: wine-devel@winehq.org >>Subject: Re: ws2_32: implement AcceptEx and GetAcceptExSockaddrs (try 3) >> >>2010/9/21 Mike Kaplinskiy <mike.kaplins...@gmail.com>: >>> Thanks for the feedback Alexandre. The complexity of the wine APC & >>> I/O system never stops amazing me. Third time's the charm? >>> >>> try 3: correctly use an apc to free internal async structures (which >>> would explain why we have the apc parameter...). Strangely moving >>> SetEvent & AddCompletion to the apc makes it not work (...an exercise >>> for another time) >>> try 2: use the new async i/o callbacks >>> --- >>> dlls/ws2_32/socket.c | 257 >>> +++++++++++++++++++++++++++++++++++++++++++++- >>> dlls/ws2_32/tests/sock.c | 14 ++- >>> 2 files changed, 263 insertions(+), 8 deletions(-) >>> >>> >>> >>> >> >>thank you for the perseverence to make this possible in the main tree. >> >> > +1. Thank you Mike. > > James McKenzie > > > >
Thanks guys, but I think most of the credit should go to Alexandre for putting up with me over the last year and helping me do this correctly. If anything, I hope this goes to show the Alexandre is willing to accept correct solutions and it's our (developer's) job to make the patches correct. After all, he (more than likely) has a larger experience working on wine than those who complain that their work isn't accepted ;). Anyway back to the patch - as an FYI this patch may not make things better. It gives a somewhat incomplete implementation (you can see the FIXME @ WS2_async_accept), and you may encounter various freezing issues since we don't cancel requests properly. That's something a lot more complicated to do and I do not yet have a good idea on how to do it correctly. There are also two minor things we need to implement to make sure we're not triggering this behavior too much (SO_UPDATE_ACCEPT_CONTEXT and SO_CONNECT_TIME). We will see how prevalent the freezes are. Mike.