On Fri, 13 Dec 2002, Aaron Bannert wrote:
> > On Friday, December 13, 2002, at 09:06 AM, <[EMAIL PROTECTED]> wrote: > > > On Fri, 13 Dec 2002, Aaron Bannert wrote: > > > >> > >> On Thursday, December 12, 2002, at 12:34 PM, Greg Ames wrote: > >>> I dug into APR locks a little bit. The apr_global_mutex_* functions > >>> turn into two separate syscalls, with #if APR_HAS_THREADS around the > >>> thread mutexing. So unfortunately they wouldn't save us any syscalls > >>> :-( :-( But they might save a little bit of function call overhead. > >>> > >>> Another interesting place to look is in > >>> srclib/apr/include/arch/unix/apr_private.h . > >>> There are several xxxx_IS_GLOBAL symbols for various serialization > >>> mechanisms. On my Linux box, all of them are #undef'ed and commented > >>> out, including fcntl and flock which are the two choices for > >>> apr_file_lock. Madhu, could you take a look there and see what > >>> you've > >>> got? > >> > >> You really shouldn't use those xxxx_IS_GLOBAL symbols for anything > >> outside of APR. > >> They are there for platforms like s390 where some of the file-based > >> locks do actually > >> serialize multiple threads within multiple processes. > > > > Um, then why in the world are those symbols in a public header file? > > They > > are only ever used inside of APR, so they should exist in > > apr_private.h, > > not apr.h. > > They are in apr_private.h. Yes, but they are also in apr.h. pigmy:~/apr/include - 9:57AM% grep "_IS_GLOBAL" apr.h #define APR_PROCESS_LOCK_IS_GLOBAL 0 #define APR_PROC_MUTEX_IS_GLOBAL 0 pigmy:~/apr/include - 9:57AM% cd arch/unix pigmy:~/apr/include/arch/unix - 9:57AM% grep "_IS_GLOBAL" apr_private.h /* #undef POSIXSEM_IS_GLOBAL */ /* #undef SYSVSEM_IS_GLOBAL */ /* #undef FCNTL_IS_GLOBAL */ /* #undef FLOCK_IS_GLOBAL */ pigmy:~/apr/include/arch/unix - 9:57AM% So, why are they in apr.h at all? Ryan