Quick question how does the apr use the shm segments and why does it have a
slotmem error if we use mod_proxy with several balancer name calls and
multiple hosts apache servers on a single dev box? I am really trying to
understand how this code segment below works?

shm.c file call?

#if APR_USE_SHMEM_SHMGET   71 static key_t our_ftok(const char
*filename)   72 {   73     /* to help avoid collisions while still
using   74      * an easily recreated proj_id */   75     apr_ssize_t
slen = strlen(filename);   76     return ftok(filename,   77
      (int)apr_hashfunc_default(filename, &slen));   78 }   79 #endif




APR_PERMS_SET_IMPLEMENT(shm)
  696 {
  697 #if APR_USE_SHMEM_SHMGET || APR_USE_SHMEM_SHMGET_ANON
  698     struct shmid_ds shmbuf;
  699     int shmid;
  700     apr_shm_t *m = (apr_shm_t *)theshm;
  701
  702     if ((shmid = shmget(m->shmkey, 0, SHM_R | SHM_W)) == -1) {
  703         return errno;
  704     }
  705     shmbuf.shm_perm.uid  = uid;
  706     shmbuf.shm_perm.gid  = gid;
  707     shmbuf.shm_perm.mode = apr_unix_perms2mode(perms);
  708     if (shmctl(shmid, IPC_SET, &shmbuf) == -1) {
  709         return errno;
  710     }
  711     return APR_SUCCESS;
  712 #else
  713     return APR_ENOTIMPL;
  714 #endif
  715 }
  716
 shmbuf.shm_perm.uid  = uid;
  706     shmbuf.shm_perm.gid  = gid;
  707     shmbuf.shm_perm.mode = apr_unix_perms2mode(perms);

Reply via email to