Mike Kaplinskiy : server: Get rid of sock_try_event.

Alexandre Julliard julliard at winehq.org
Fri May 14 11:17:28 CDT 2010


Module: wine
Branch: master
Commit: 4f9e09ea5732d088b736bc2dc1cf8a928e983870
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=4f9e09ea5732d088b736bc2dc1cf8a928e983870

Author: Mike Kaplinskiy <mike.kaplinskiy at gmail.com>
Date:   Thu May 13 16:42:04 2010 -0400

server: Get rid of sock_try_event.

We *might* need to ignore POLLERR messages for UDP sockets, as the
condition is actually temporary and sock_try_event was hiding this.

---

 server/sock.c |   24 +++---------------------
 1 files changed, 3 insertions(+), 21 deletions(-)

diff --git a/server/sock.c b/server/sock.c
index 75a9d00..d2348e4 100644
--- a/server/sock.c
+++ b/server/sock.c
@@ -254,18 +254,6 @@ static int sock_reselect( struct sock *sock )
     return ev;
 }
 
-/* After POLLHUP is received, the socket will no longer be in the main select loop.
-   This function is used to signal pending events nevertheless */
-static void sock_try_event( struct sock *sock, int event )
-{
-    event = check_fd_events( sock->fd, event );
-    if (event)
-    {
-        if ( debug_level ) fprintf( stderr, "sock_try_event: %x\n", event );
-        sock_poll_event( sock->fd, event );
-    }
-}
-
 /* wake anybody waiting on the socket event or send the associated message */
 static void sock_wake_up( struct sock *sock, int pollev )
 {
@@ -509,7 +497,6 @@ static void sock_queue_async( struct fd *fd, const async_data_t *data, int type,
 {
     struct sock *sock = get_fd_user( fd );
     struct async_queue *queue;
-    int pollev;
 
     assert( sock->obj.ops == &sock_ops );
 
@@ -541,15 +528,13 @@ static void sock_queue_async( struct fd *fd, const async_data_t *data, int type,
         set_error( STATUS_PENDING );
     }
 
-    pollev = sock_reselect( sock );
-    if ( pollev ) sock_try_event( sock, pollev );
+    sock_reselect( sock );
 }
 
 static void sock_reselect_async( struct fd *fd, struct async_queue *queue )
 {
     struct sock *sock = get_fd_user( fd );
-    int events = sock_reselect( sock );
-    if (events) sock_try_event( sock, events );
+    sock_reselect( sock );
 }
 
 static void sock_cancel_async( struct fd *fd, struct process *process, struct thread *thread, client_ptr_t iosb )
@@ -883,7 +868,6 @@ DECL_HANDLER(set_socket_event)
     if (debug_level && sock->event) fprintf(stderr, "event ptr: %p\n", sock->event);
 
     pollev = sock_reselect( sock );
-    if ( pollev ) sock_try_event( sock, pollev );
 
     if (sock->mask)
         sock->state |= FD_WINE_NONBLOCKING;
@@ -943,7 +927,6 @@ DECL_HANDLER(get_socket_event)
 DECL_HANDLER(enable_socket_event)
 {
     struct sock *sock;
-    int pollev;
 
     if (!(sock = (struct sock*)get_handle_obj( current->process, req->handle,
                                                FILE_WRITE_ATTRIBUTES, &sock_ops)))
@@ -955,8 +938,7 @@ DECL_HANDLER(enable_socket_event)
     sock->state &= ~req->cstate;
     if ( sock->type != SOCK_STREAM ) sock->state &= ~STREAM_FLAG_MASK;
 
-    pollev = sock_reselect( sock );
-    if ( pollev ) sock_try_event( sock, pollev );
+    sock_reselect( sock );
 
     release_object( &sock->obj );
 }




More information about the wine-cvs mailing list