> On 31 Mar 2017, at 03:21, William A Rowe Jr <wr...@rowe-clan.net> wrote:
> 
> So almost two decades later, this is still odd.

Is this a reference to some technical discussion on the subject you recollect?

Have you verified that all APR_USE_*_SERIALIZE are mutually exclusive,
or could it be that we use both in different contexts, perhaps for a valid 
reason?

> apr.h:#define APR_USE_SHMEM_MMAP_TMP     0
> apr.h:#define APR_USE_SHMEM_MMAP_SHM     0
> apr.h:#define APR_USE_SHMEM_MMAP_ZERO    0
> apr.h:#define APR_USE_SHMEM_SHMGET_ANON  0
> apr.h:#define APR_USE_SHMEM_SHMGET       1
> apr.h:#define APR_USE_SHMEM_MMAP_ANON    1
> apr.h:#define APR_USE_SHMEM_BEOS         0
> apr.h:#define APR_USE_FLOCK_SERIALIZE           0
> apr.h:#define APR_USE_SYSVSEM_SERIALIZE         1
> apr.h:#define APR_USE_POSIXSEM_SERIALIZE        0
> apr.h:#define APR_USE_FCNTL_SERIALIZE           0
> apr.h:#define APR_USE_PROC_PTHREAD_SERIALIZE    0
> apr.h:#define APR_USE_PTHREAD_SERIALIZE         1

I’ve just (finally) got the toolchain to build & test this on MacOS,
and I’ve got identical APR_USE results there.  Perhaps our build logic
really isn’t doing anything very smart at all?

> SYSVSEM > PTHREAD in the code logic, so we are still using
> sysv semaphores with all their defects over the choice of pthread
> mutexes where both are supported on Linux.

Probably applies more widely than just Linux.  But might a general fix
risk breaking some minority Unix platform or cross-compile?

> Do we want to fix this in the 1.6.0 release?

How confident are you of not breaking anything with a fix?

— 
Nick Kew

Reply via email to