diff options
author | Bent Bisballe Nyeng <deva@aasimon.org> | 2012-03-01 15:36:13 +0100 |
---|---|---|
committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2012-03-01 15:36:13 +0100 |
commit | 72b7d402e36ac2235e89c3b099a634f3fb5e5770 (patch) | |
tree | 805997f60d039514757a0072e096ec5a8841c3a0 /server/src/admin_connection.cc | |
parent | 2f90b203abb638b8c18db166102a0ef183c9b213 (diff) |
activeSessions rewrite to prevent deadlock.
Diffstat (limited to 'server/src/admin_connection.cc')
-rw-r--r-- | server/src/admin_connection.cc | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/server/src/admin_connection.cc b/server/src/admin_connection.cc index f761023..1522627 100644 --- a/server/src/admin_connection.cc +++ b/server/src/admin_connection.cc @@ -59,17 +59,11 @@ static std::string admin_listactivesessions(Environment &env) { std::string str; - std::vector<std::string> act = env.sessions.activeSessions(); - std::vector<std::string>::iterator i = act.begin(); + std::vector<Sessions::SessionInfo> act = env.sessions.activeSessions(); + std::vector<Sessions::SessionInfo>::iterator i = act.begin(); while(i != act.end()) { - // NOTE: Returned session is returned in locked state! - Session *s = NULL; - SessionAutounlock l(&s); - s = env.sessions.lockedSession(*i); - if(s) { - str += "Session " + *i + ": "+s->templ+" on "+s->patientid+" "+ - std::string(s->idle()?"[idle]":"[active]")+"\n"; - } + str += "Session " + i->id + ": "+i->templ+" on "+i->patientid+" "+ + std::string(i->idle?"[idle]":"[active]")+"\n"; i++; } |