Can someone tell me why the default shared memory method under Linux is APR_USE_SHM_SHMGET ?
Actually, there are so many different APR_USE_SHM_* defines, it becomes a bit confusing.  Is there a doc somewhere
that explains the different methods and the pros/cons for each ?
 
What is the proper way to change to an alternate method ?  Is there a ./configure option to set a different method ?
 
The reason I asked is that I was having an issues accessing a piece of shared memory allocated by another user.
 
I have a demon process that creates a piece of shared memory with apr_shm_create().  I then have another process that attaches to that shared memory via apr_shm_attach().  I both the demon and the process are under the same user all works well.  Even if the demon is started under a normal user, and the process that attaches runs as root it works.  If the process trying to attach is anything but root privilege, the apr_shm_attach() fails with a permission denied error.
 
I was able to get the behavior I want by switching to APR_USE_SHMEM_MMAP_TMP and making the users members of the same group.
 
 
 
Daniel May
daniel@may.com