summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/Session.php14
1 files changed, 9 insertions, 5 deletions
diff --git a/classes/Session.php b/classes/Session.php
index a92ce405b..5ec509f5f 100644
--- a/classes/Session.php
+++ b/classes/Session.php
@@ -108,20 +108,24 @@ class Session extends Memcached_DataObject
$epoch = common_sql_date(time() - $maxlifetime);
+ $ids = array();
+
$session = new Session();
$session->whereAdd('modified < "'.$epoch.'"');
+ $session->selectAdd();
+ $session->selectAdd('id');
$session->find();
while ($session->fetch()) {
- $other = new Session();
- $other->id = $session->id;
- self::logdeb("Collecting session $other->id");
- $result = $other->delete();
- self::logdeb("garbage collection result = $result");
+ $ids[] = $session->id;
}
$session->free();
+
+ foreach ($ids as $id) {
+ self::destroy($id);
+ }
}
static function setSaveHandler()