Small fix ported from ReWind. Changes by Ove. Changelog: Ove Kaaven Fixed an infinite recursion. Index: server/sock.c =================================================================== RCS file: /home/wine/wine/server/sock.c,v retrieving revision 1.46 diff -u -r1.46 sock.c --- server/sock.c 5 Sep 2003 23:15:41 -0000 1.46 +++ server/sock.c 27 Dec 2003 15:12:07 -0000 @@ -415,6 +415,9 @@ } } + /* wake up anyone waiting for whatever just happened */ + if ( sock->pmask & sock->mask || sock->flags & FD_FLAG_OVERLAPPED ) sock_wake_up( sock, event ); + if ( sock->pmask & FD_CLOSE || event & (POLLERR|POLLHUP) ) { if ( debug_level ) @@ -423,9 +426,6 @@ } else sock_reselect( sock ); - - /* wake up anyone waiting for whatever just happened */ - if ( sock->pmask & sock->mask || sock->flags & FD_FLAG_OVERLAPPED ) sock_wake_up( sock, event ); /* if anyone is stupid enough to wait on the socket object itself, * maybe we should wake them up too, just in case? */