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?

Patches

Pull Requests

History

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;
> }