From 26d9d2bd27dd9e6ed9a77789afea0944032223d8 Mon Sep 17 00:00:00 2001 From: Jeff Darcy Date: Thu, 31 Jan 2013 14:23:36 -0500 Subject: socket: restructure disconnect/poll-thread interactions Change-Id: I792c28f52068e4ed666069b740739662685160bc BUG: 906401 Signed-off-by: Jeff Darcy Reviewed-on: http://review.gluster.org/4456 Tested-by: Gluster Build System Reviewed-by: Anand Avati --- rpc/rpc-transport/socket/src/socket.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'rpc/rpc-transport/socket/src/socket.h') diff --git a/rpc/rpc-transport/socket/src/socket.h b/rpc/rpc-transport/socket/src/socket.h index 78faad903..bb342d998 100644 --- a/rpc/rpc-transport/socket/src/socket.h +++ b/rpc/rpc-transport/socket/src/socket.h @@ -184,6 +184,12 @@ struct gf_sock_incoming { char *ra_buf; }; +typedef enum { + OT_IDLE, /* Uninitialized or termination complete. */ + OT_ALIVE, /* Past pthread_create, no error/disconnect. */ + OT_DYING, /* Disconnect in progress. */ +} ot_state_t; + typedef struct { int32_t sock; int32_t idx; @@ -222,7 +228,8 @@ typedef struct { pthread_t thread; int pipe[2]; gf_boolean_t own_thread; - volatile int socket_gen; + ot_state_t ot_state; + pthread_cond_t ot_event; } socket_private_t; -- cgit