On 12/16/21 21:50, Zebediah Figura (she/her) wrote:
On 12/16/21 12:43, Paul Gofman wrote:
Signed-off-by: Paul Gofman pgofman@codeweavers.com
If the operation is completed before the server call then the completion will be sent during the server call and another thread may receive it before the iosb status is set. It looks like we shouldn't normally have failure status from server once our operation already succeeded.
That doesn't sound right. The server shouldn't queue completion during the recv_socket server call, but rather during the subsequent wait on the async object [i.e. wait_async()]. In that case we should have already filled the IOSB.
Oh, yeah, it is probably triggered by async_satisfied(). I briefly checked and it looks like it is the second patch alone does the job here.
So I suggest to just ignore this one, the second patch applies cleanly without this one.
Just for better understanding, why a separate wait on async is needed even if the socket operation already succeeded before the server call?