diff options
author | Evan Prodromou <evan@status.net> | 2010-12-11 11:01:05 -0500 |
---|---|---|
committer | Evan Prodromou <evan@status.net> | 2010-12-11 11:01:05 -0500 |
commit | af4ee1d490b86e5d50cfcb62db3b886c9305da8c (patch) | |
tree | 6bc83bb36393b63e57748adae29597b6f754837d /classes | |
parent | d0ea138888cbc5de30f2c9a52a771921efa9fdc1 (diff) | |
parent | ab7a06542c73b6bcd903d0184bd1cf4ac494c560 (diff) |
Merge branch '0.9.x' of gitorious.org:statusnet/mainline into 0.9.x
Diffstat (limited to 'classes')
-rw-r--r-- | classes/Session.php | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/classes/Session.php b/classes/Session.php index 2422f8b68..e1c83ad4d 100644 --- a/classes/Session.php +++ b/classes/Session.php @@ -178,6 +178,18 @@ class Session extends Memcached_DataObject $result = session_set_save_handler('Session::open', 'Session::close', 'Session::read', 'Session::write', 'Session::destroy', 'Session::gc'); self::logdeb("save handlers result = $result"); + + // PHP 5.3 with APC ends up destroying a bunch of object stuff before the session + // save handlers get called on request teardown. + // Registering an explicit shutdown function should take care of this before + // everything breaks on us. + register_shutdown_function('Session::cleanup'); + return $result; } + + static function cleanup() + { + session_write_close(); + } } |