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