summaryrefslogtreecommitdiff
path: root/classes/Session.php
diff options
context:
space:
mode:
authorEvan Prodromou <evan@controlyourself.ca>2009-08-02 11:18:41 -0400
committerEvan Prodromou <evan@controlyourself.ca>2009-08-02 11:18:41 -0400
commit8157336a0d5da46889d2c06a7ea451651abcb964 (patch)
treef878bd6cf0d84ec39864c8ecfc564aca64501cde /classes/Session.php
parent43747391e80f0dbbfd2ba1f654aeb1fcbc4a1492 (diff)
don't delete during select
Diffstat (limited to 'classes/Session.php')
-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()