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@.
This commit is contained in:
Tiago Cunha
2011-01-03 23:27:54 +00:00
parent 09ef2c9f40
commit d3c04b74ec
8 changed files with 28 additions and 24 deletions

View File

@@ -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)