]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Merge branch 'master' into 0.9.x
authorEvan Prodromou <evan@status.net>
Tue, 5 Jan 2010 01:14:54 +0000 (15:14 -1000)
committerEvan Prodromou <evan@status.net>
Tue, 5 Jan 2010 01:14:54 +0000 (15:14 -1000)
Conflicts:
actions/publictagcloud.php
classes/Memcached_DataObject.php

1  2 
classes/Memcached_DataObject.php

index a77e43d38ce4e12635406c82c03abe0d02f661fd,ca360d4111fa092defaf4cc273dfeee47f22f23a..a3a69e6672c7daeb7e9efbdcf3bb0a1e036da775
  
  if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
  
 -require_once INSTALLDIR.'/classes/Memcached_DataObject.php';
 -
  class Memcached_DataObject extends DB_DataObject
  {
-    /**
+     /**
       * Destructor to free global memory resources associated with
       * this data object when it's unset or goes out of scope.
       * DB_DataObject doesn't do this yet by itself.
          }
      }
  
 -        
+     /**
+      * Magic function called at serialize() time.
+      *
+      * We use this to drop a couple process-specific references
+      * from DB_DataObject which can cause trouble in future
+      * processes.
+      *
+      * @return array of variable names to include in serialization.
+      */
+     function __sleep()
+     {
+         $vars = array_keys(get_object_vars($this));
+         $skip = array('_DB_resultid', '_link_loaded');
+         return array_diff($vars, $skip);
+     }
+     /**
+      * Magic function called at unserialize() time.
+      *
+      * Clean out some process-specific variables which might
+      * be floating around from a previous process's cached
+      * objects.
+      *
+      * Old cached objects may still have them.
+      */
+     function __wakeup()
+     {
+         // Refers to global state info from a previous process.
+         // Clear this out so we don't accidentally break global
+         // state in *this* process.
+         $this->_DB_resultid = null;
++
+         // We don't have any local DBO refs, so clear these out.
+         $this->_link_loaded = false;
+     }
      /**
       * Wrapper for DB_DataObject's static lookup using memcached
       * as backing instead of an in-process cache array.