Instead of putting dead clients on a list and checking it every loop,

use event_once to queue a callback to deal with them. Also dead clients
with references would never actually be freed because the wrap-up
functions (the callback for stdin, or status_prompt_clear) would never
be called. So call them in server_client_lost.
This commit is contained in:
nicm
2015-06-05 18:01:12 +00:00
parent b0782df8a6
commit 8c93b768e4
5 changed files with 37 additions and 16 deletions

1
tmux.h
View File

@ -1871,6 +1871,7 @@ int server_client_check_nested(struct client *);
void server_client_handle_key(struct client *, int);
void server_client_create(int);
int server_client_open(struct client *, char **);
void server_client_deref(struct client *);
void server_client_lost(struct client *);
void server_client_callback(int, short, void *);
void server_client_status_timer(void);