On Tue, 2004-02-17 at 06:07, Derick Rethans wrote: > I don't want to plug anything, but have a look at www.vl-srm.net; it > tries to achive this (note: site is a bit outdated).
You don't have to plugin anything, you can do it in PHP and the data storage method of your choice. Keep in mind that srm is a PHP extension and therefore less portable than just using PHP code. Srm's design is certainly much more robust than what I have below, but here's a basic pseudo code example of global variables using shared memory and very simple locking. You could extend this to also save and restore static variables in objects. function retrieveGlobalVar($var_name) { if (shmGetVal($var_name . '-lock') == '0') { // grab variable from storage $val = unserialize(shmGetVal($var_name)); // Lock variable automatically lockGlobalVar($var_name); // return variable return $val; } else { // Locked return null; } } function saveAndReleaseGlobalVar($var_name, $var) { // save variable shmSetVal($var_name, serialize($var)); // Unlock variable automatically unlockGlobalVar($var_name); } function deleteGlobalVar($var_name) { // Delete variable shmDeleteVal($var_name); // Delete variable's locking value shmDeleteVal($var_name . '-lock'); } function lockGlobalVar($var_name) { // mark variable as locked shmSetVal($var_name . '-lock', '1'); } function unlockGlobalVar($var_name) { // mark variable as unlocked shmSetVal($var_name . '-lock', '0'); } Regards, Adam -- Adam Bregenzer [EMAIL PROTECTED] http://adam.bregenzer.net/ -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php