summaryrefslogtreecommitdiffstats
path: root/rpc/rpc-transport/socket/src/socket.h
diff options
context:
space:
mode:
authorJeff Darcy <jdarcy@redhat.com>2013-01-31 14:23:36 -0500
committerAnand Avati <avati@redhat.com>2013-02-03 12:09:54 -0800
commit26d9d2bd27dd9e6ed9a77789afea0944032223d8 (patch)
tree89ba327fc9bf6d0cd8b5427cdf4f3ef5f666cfe1 /rpc/rpc-transport/socket/src/socket.h
parent77f86aae037ddbe581aea9829c4f541de47a35d6 (diff)
socket: restructure disconnect/poll-thread interactions
Change-Id: I792c28f52068e4ed666069b740739662685160bc BUG: 906401 Signed-off-by: Jeff Darcy <jdarcy@redhat.com> Reviewed-on: http://review.gluster.org/4456 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@redhat.com>
Diffstat (limited to 'rpc/rpc-transport/socket/src/socket.h')
-rw-r--r--rpc/rpc-transport/socket/src/socket.h9
1 files changed, 8 insertions, 1 deletions
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;