ID: 14208 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Feedback +Status: Analyzed Bug Type: Feature/Change Request Operating System: All PHP Version: 4.0.6 New Comment:
The mail from Duncan : It makes updates twice as fast. My LRU code is knocking around somewhere, but I'll have to do some rummaging if you want it. 367c367,376 < php_remove_shm_data(ptr, shm_varpos); --- > shm_var = (sysvshm_chunk*)((char*)ptr + shm_varpos); > /* Check the new length against the old length */ > if(shm_var->length != len ) { > /* If not equal, remove the old entry and prepare to create a new one */ > php_remove_shm_data(ptr, shm_varpos); > } else { > /* If equal, just copy the new data across and return */ > memcpy(&(shm_var->mem),data,len); > return 0; > } Previous Comments: ------------------------------------------------------------------------ [2003-01-18 12:53:21] [EMAIL PROTECTED] Where is the patch? ------------------------------------------------------------------------ [2001-11-24 08:57:02] [EMAIL PROTECTED] Apologies for posting this here, but I don't know where else to go. shm_put_var has a problem in that when you try to write a variable which already exists, the function will fail if there is not enough free space for the variable and its old value. I have a patch which will simply overwrite the old value if the lengths are the same, and will do more intelligent space checking if they are not. I will submit this when I get back to the office. I also have developed a set of additional shm functions which implement an LRU cache. These functions are handy for eg caching serialized objects which would otherwise have to be fetched from a database. And of course they are shared across the system. My question is: how do I submit these new functions for inclusion in the source? ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=14208&edit=1