diff --git a/client.c b/client.c index 63432926..271568da 100644 --- a/client.c +++ b/client.c @@ -52,7 +52,7 @@ const char *client_exitsession; int client_attached; int client_get_lock(char *); -int client_connect(char *, int); +int client_connect(struct event_base *, char *, int); void client_send_identify(int); int client_write_one(enum msgtype, int, const void *, size_t); int client_write_server(enum msgtype, const void *, size_t); @@ -96,7 +96,7 @@ client_get_lock(char *lockfile) /* Connect client to server. */ int -client_connect(char *path, int start_server) +client_connect(struct event_base *base, char *path, int start_server) { struct sockaddr_un sa; size_t size; @@ -149,7 +149,7 @@ retry: close(lockfd); return (-1); } - fd = server_start(lockfd, lockfile); + fd = server_start(base, lockfd, lockfile); } if (locked) { free(lockfile); @@ -203,7 +203,7 @@ client_exit_message(void) /* Client main loop. */ int -client_main(int argc, char **argv, int flags) +client_main(struct event_base *base, int argc, char **argv, int flags) { struct cmd *cmd; struct cmd_list *cmdlist; @@ -252,7 +252,7 @@ client_main(int argc, char **argv, int flags) set_signals(client_signal); /* Initialize the client socket and start the server. */ - fd = client_connect(socket_path, cmdflags & CMD_STARTSERVER); + fd = client_connect(base, socket_path, cmdflags & CMD_STARTSERVER); if (fd == -1) { if (errno == ECONNREFUSED) { fprintf(stderr, "no server running on %s\n", diff --git a/server.c b/server.c index 9cddecd3..8308367d 100644 --- a/server.c +++ b/server.c @@ -158,7 +158,7 @@ server_create_socket(void) /* Fork new server. */ int -server_start(int lockfd, char *lockfile) +server_start(struct event_base *base, int lockfd, char *lockfile) { int pair[2]; char *cause; @@ -188,7 +188,7 @@ server_start(int lockfd, char *lockfile) /* event_init() was called in our parent, need to reinit. */ clear_signals(0); - if (event_reinit(ev_base) != 0) + if (event_reinit(base) != 0) fatal("event_reinit failed"); logfile("server"); diff --git a/tmux.c b/tmux.c index e66d24c0..b984b903 100644 --- a/tmux.c +++ b/tmux.c @@ -41,8 +41,6 @@ struct options global_s_options; /* session options */ struct options global_w_options; /* window options */ struct environ global_environ; -struct event_base *ev_base; - char *cfg_file; char *shell_cmd; int debug_level; @@ -386,6 +384,5 @@ main(int argc, char **argv) setproctitle("%s (%s)", __progname, socket_path); /* Pass control to the client. */ - ev_base = event_init(); - exit(client_main(argc, argv, flags)); + exit(client_main(event_init(), argc, argv, flags)); } diff --git a/tmux.h b/tmux.h index 10b161de..3b67470f 100644 --- a/tmux.h +++ b/tmux.h @@ -1407,7 +1407,6 @@ extern struct options global_options; extern struct options global_s_options; extern struct options global_w_options; extern struct environ global_environ; -extern struct event_base *ev_base; extern char *cfg_file; extern char *shell_cmd; extern int debug_level; @@ -1792,7 +1791,7 @@ int cmd_string_parse(const char *, struct cmd_list **, const char *, void cmd_wait_for_flush(void); /* client.c */ -int client_main(int, char **, int); +int client_main(struct event_base *, int, char **, int); /* key-bindings.c */ RB_PROTOTYPE(key_bindings, key_binding, entry, key_bindings_cmp); @@ -1829,7 +1828,7 @@ void server_clear_marked(void); int server_is_marked(struct session *, struct winlink *, struct window_pane *); int server_check_marked(void); -int server_start(int, char *); +int server_start(struct event_base *, int, char *); void server_update_socket(void); void server_add_accept(int);