(meant to follow up on the list... darn!)

--- Begin Message ---
Cliff Woolley <[EMAIL PROTECTED]> writes:

> Just a heads up on some warnings I'm getting on Solaris 2.6 where
> APR_USE_PROC_PTHREAD_SERIALIZE is selected:
> 
> locks.c: In function `apr_os_lock_get':
> locks.c:344: warning: assignment makes pointer from integer without a cast
> locks.c: In function `apr_os_lock_put':
> locks.c:365: warning: assignment makes integer from pointer without a cast
> 
> The problem is that (after macro substitution) my apr_os_lock_t looks like
> this:
> 
> struct apr_os_lock_t {
>     pthread_mutex_t *crossproc;
>     pthread_mutex_t *intraproc;
> };
> 
> And apr_os_lock_get/put assume that crossproc will be an int (as it is
> with the other serialize methods).
> 
> I'd work on this, but it'd probably be easier for somebody who's spent
> more time in the locking code than I have...

I suspect that apr_os_lock_t on Unix needs to look like this...

struct apr_os_lock_t {
#if APR_HAS_PROC_PTHREAD_SERIALIZE
    pthread_mutex_t *pthread_crossproc; /* NULL if not used */
#endif
#if APR_HAS_SYSVSEM_SERIALIZE || APR_HAS_FCNTL_SERIALIZE || 
APR_HAS_FLOCK_SERIALIZE
    int int_crossproc;                  /* -1 if not used */
#endif
#if APR_USE_PTHREAD_SERIALIZE
    pthread_mutex_t *pthread_intraproc; /* NULL if not used */
#endif
};

In create_lock(), initialize as follows before filling in any lock handles:

#if APR_HAS_PROC_PTHREAD_SERIALIZE
    new->pthread_interproc = NULL;
#endif
#if APR_HAS_SYSVSEM_SERIALIZE || APR_HAS_FCNTL_SERIALIZE || 
APR_HAS_FLOCK_SERIALIZE
    new->interproc = -1;
#endif
#if APR_USE_PTHREAD_SERIALIZE
    new->intraproc = NULL;
#endif

in apr_os_lock_get():

#if APR_HAS_PROC_PTHREAD_SERIALIZE
    os->pthread_crossproc = lock->pthread_interproc;
#endif
#if APR_HAS_SYSVSEM_SERIALIZE || APR_HAS_FCNTL_SERIALIZE || 
APR_HAS_FLOCK_SERIALIZE
    os->int_crossproc = lock->interproc;
#endif    
#if APR_USE_PTHREAD_SERIALIZE
    os->pthread_intraproc = lock->intraproc;
#endif

-- 
Jeff Trawick | [EMAIL PROTECTED] | PGP public key at web site:
       http://www.geocities.com/SiliconValley/Park/9289/
             Born in Roswell... married an alien...

--- End Message ---

-- 
Jeff Trawick | [EMAIL PROTECTED] | PGP public key at web site:
       http://www.geocities.com/SiliconValley/Park/9289/
             Born in Roswell... married an alien...

Reply via email to