On 1/7/22 18:49, Jinoh Kang wrote:
On 1/6/22 10:03, Zebediah Figura wrote:
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52335 Signed-off-by: Zebediah Figura zfigura@codeweavers.com
dlls/ws2_32/tests/sock.c | 5 ++--- server/sock.c | 5 +++++ 2 files changed, 7 insertions(+), 3 deletions(-)
[snip]
diff --git a/server/sock.c b/server/sock.c index 736f34feac5..c7378306511 100644 --- a/server/sock.c +++ b/server/sock.c @@ -2543,6 +2543,11 @@ static void sock_ioctl( struct fd *fd, ioctl_code_t code, struct async *async ) sock->nonblocking = 1;
sock_reselect( sock );
/* Explicitly wake the socket up if the mask causes it to become
* signaled. Note that reselecting isn't enough, since we might already
* have had events recorded in sock->reported_events and we don't want
* to select for them again. */
sock_wake_up( sock );
On a second thought, I think it makes sense to follow up almost every call to sock_reselect() with a call to sock_wake_up().
Please disregard my previous comment. It turns out I misunderstood what sock_reselect() does. I apologize for causing confusion.