Some extra logging to show why tmux might exit.

This commit is contained in:
nicm 2017-07-09 22:33:09 +00:00
parent bfaa885f10
commit 58b796608f
5 changed files with 11 additions and 10 deletions

View File

@ -61,12 +61,12 @@ cmd_kill_session_exec(struct cmd *self, struct cmdq_item *item)
RB_FOREACH_SAFE(sloop, sessions, &sessions, stmp) {
if (sloop != s) {
server_destroy_session(sloop);
session_destroy(sloop);
session_destroy(sloop, __func__);
}
}
} else {
server_destroy_session(s);
session_destroy(s);
session_destroy(s, __func__);
}
return (CMD_RETURN_NORMAL);
}

View File

@ -333,7 +333,7 @@ server_destroy_session_group(struct session *s)
else {
TAILQ_FOREACH_SAFE(s, &sg->sessions, gentry, s1) {
server_destroy_session(s);
session_destroy(s);
session_destroy(s, __func__);
}
}
}
@ -399,7 +399,7 @@ server_check_unattached(void)
if (!(s->flags & SESSION_UNATTACHED))
continue;
if (options_get_number (s->options, "destroy-unattached"))
session_destroy(s);
session_destroy(s, __func__);
}
}

View File

@ -249,7 +249,7 @@ server_send_exit(void)
}
RB_FOREACH_SAFE(s, sessions, &sessions, s1)
session_destroy(s);
session_destroy(s, __func__);
}
/* Update socket execute permissions based on whether sessions are attached. */
@ -347,6 +347,7 @@ server_signal(int sig)
{
int fd;
log_debug("%s: %s", __func__, strsignal(sig));
switch (sig) {
case SIGTERM:
server_exit = 1;

View File

@ -178,7 +178,7 @@ session_create(const char *prefix, const char *name, int argc, char **argv,
if (argc >= 0) {
wl = session_new(s, NULL, argc, argv, path, cwd, idx, cause);
if (wl == NULL) {
session_destroy(s);
session_destroy(s, __func__);
return (NULL);
}
session_select(s, RB_ROOT(&s->windows)->idx);
@ -229,11 +229,11 @@ session_free(__unused int fd, __unused short events, void *arg)
/* Destroy a session. */
void
session_destroy(struct session *s)
session_destroy(struct session *s, const char *from)
{
struct winlink *wl;
log_debug("session %s destroyed", s->name);
log_debug("session %s destroyed (%s)", s->name, from);
s->curw = NULL;
RB_REMOVE(sessions, &sessions, s);
@ -419,7 +419,7 @@ session_detach(struct session *s, struct winlink *wl)
session_group_synchronize_from(s);
if (RB_EMPTY(&s->windows)) {
session_destroy(s);
session_destroy(s, __func__);
return (1);
}
return (0);

2
tmux.h
View File

@ -2295,7 +2295,7 @@ struct session *session_find_by_id(u_int);
struct session *session_create(const char *, const char *, int, char **,
const char *, const char *, struct environ *,
struct termios *, int, u_int, u_int, char **);
void session_destroy(struct session *);
void session_destroy(struct session *, const char *);
void session_add_ref(struct session *, const char *);
void session_remove_ref(struct session *, const char *);
int session_check_name(const char *);