diff --git a/cmd-attach-session.c b/cmd-attach-session.c index 92be3085..59c2b479 100644 --- a/cmd-attach-session.c +++ b/cmd-attach-session.c @@ -101,6 +101,7 @@ cmd_attach_session_exec(struct cmd *self, struct cmd_ctx *ctx) server_redraw_client(ctx->cmdclient); } recalculate_sizes(); + server_update_socket(); return (1); /* 1 means don't tell command client to exit */ } diff --git a/cmd-new-session.c b/cmd-new-session.c index 4889ab4b..a9657a97 100644 --- a/cmd-new-session.c +++ b/cmd-new-session.c @@ -277,6 +277,7 @@ cmd_new_session_exec(struct cmd *self, struct cmd_ctx *ctx) } } recalculate_sizes(); + server_update_socket(); return (!detached); /* 1 means don't tell command client to exit */ } diff --git a/server-client.c b/server-client.c index dd386001..b5d29b7b 100644 --- a/server-client.c +++ b/server-client.c @@ -156,6 +156,7 @@ server_client_lost(struct client *c) c->flags |= CLIENT_DEAD; recalculate_sizes(); + server_update_socket(); } /* Process a single client event. */ diff --git a/server.c b/server.c index 09618d25..209fcd07 100644 --- a/server.c +++ b/server.c @@ -59,7 +59,6 @@ void server_loop(void); int server_should_shutdown(void); void server_send_shutdown(void); void server_clean_dead(void); -int server_update_socket(void); void server_accept_callback(int, short, void *); void server_signal_callback(int, short, void *); void server_child_signal(void); @@ -105,6 +104,8 @@ server_create_socket(void) if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) fatal("fcntl failed"); + server_update_socket(); + return (fd); } @@ -208,8 +209,6 @@ void server_loop(void) { while (!server_should_shutdown()) { - server_update_socket(); - event_loop(EVLOOP_ONCE); server_window_loop(); @@ -288,7 +287,7 @@ server_clean_dead(void) } /* Update socket execute permissions based on whether sessions are attached. */ -int +void server_update_socket(void) { struct session *s; @@ -312,8 +311,6 @@ server_update_socket(void) else chmod(socket_path, S_IRUSR|S_IWUSR); } - - return (n); } /* Callback for server socket. */ diff --git a/tmux.h b/tmux.h index d82363d0..96ad9460 100644 --- a/tmux.h +++ b/tmux.h @@ -1557,6 +1557,7 @@ extern struct clients dead_clients; int server_start(char *); void server_signal_set(void); void server_signal_clear(void); +void server_update_socket(void); /* server-client.c */ void server_client_create(int);