aboutsummaryrefslogtreecommitdiff
path: root/session.c
diff options
context:
space:
mode:
authorTiago Cunha <tcunha@gmx.com>2011-01-03 23:27:54 +0000
committerTiago Cunha <tcunha@gmx.com>2011-01-03 23:27:54 +0000
commitd3c04b74ecdec884bfa29d50d4315cfad7a2717a (patch)
treef492ad2d8aa11a19c9faf0d538c0ad89e59c4c95 /session.c
parent09ef2c9f407bc70080a35b88de02df5c5f2bfae9 (diff)
downloadrtmux-d3c04b74ecdec884bfa29d50d4315cfad7a2717a.tar.gz
rtmux-d3c04b74ecdec884bfa29d50d4315cfad7a2717a.tar.bz2
rtmux-d3c04b74ecdec884bfa29d50d4315cfad7a2717a.zip
Sync OpenBSD patchset 819:
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.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/session.c b/session.c
index da2adbe1..22572016 100644
--- a/session.c
+++ b/session.c
@@ -1,4 +1,4 @@
-/* $Id: session.c,v 1.84 2010-12-30 22:39:49 tcunha Exp $ */
+/* $Id: session.c,v 1.85 2011-01-03 23:27:54 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -96,7 +96,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);
@@ -163,6 +163,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)