diff options
author | Nicholas Marriott <nicm@openbsd.org> | 2011-01-01 01:12:09 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@openbsd.org> | 2011-01-01 01:12:09 +0000 |
commit | 04b32fa734d491e7ae9b915dc309858310d96185 (patch) | |
tree | 877284af9511a2c46a1f9a949ca6cbab3184a0be /session.c | |
parent | 91218f8714dafa83f49ece4435cc3d26a738a02e (diff) |
Don't reset the activity timer for unattached sessions every second,
this screws up the choice of most-recently-used. Instead, break the time
update into a little function and do it when the session is attached.
Pointed out by joshe@.
Diffstat (limited to 'session.c')
-rw-r--r-- | session.c | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -97,7 +97,7 @@ session_create(const char *name, const char *cmd, const char *cwd, if (gettimeofday(&s->creation_time, NULL) != 0) fatal("gettimeofday failed"); - memcpy(&s->activity_time, &s->creation_time, sizeof s->activity_time); + session_update_activity(s); s->cwd = xstrdup(cwd); @@ -164,6 +164,14 @@ session_destroy(struct session *s) RB_INSERT(sessions, &dead_sessions, s); } +/* Update session active time. */ +void +session_update_activity(struct session *s) +{ + if (gettimeofday(&s->activity_time, NULL) != 0) + fatal("gettimeofday"); +} + /* Find the next usable session. */ struct session * session_next_session(struct session *s) |