Philip Martin wrote on Thu, Oct 13, 2011 at 18:44:44 +0100:
> Daniel Shahaf <d...@daniel.shahaf.name> writes:
> 
> > First of all, I made the same patch yesterday elsewhere.
> 
> Another bug :)
> 
> > Second of all, the use is #if, not #ifdef, so I believe the macro is
> > always defined (to 0 or 1).
> 
> The one doesn't follow from the other.  In either case the macro could
> be zero, non-zero, no value or not defined:
> 
>                                      #if                #ifdef
> #define APR_HAS_THREADS 1            true               true
> #define APR_HAS_THREADS 0            false              true
> #define APR_HAS_THREADS              true               true
> <nothing>                            false              false
> 

Is this standard behaviour?

> So not defining APR_HAS_THREADS is a valid way to define no thread
> support, but it means you can't use APR_HAS_THREADS directly as a
> variable.
> 
> It's possible that APR will always ensure that APR_HAS_THREADS is either
> 0 or 1, but the C language does not.
> 

My reading of
http://svn.apache.org/repos/asf/apr/apr/tags/0.9.0/include/apr.h.in
http://svn.apache.org/repos/asf/apr/apr/tags/0.9.0/include/apr.hnw
http://svn.apache.org/repos/asf/apr/apr/tags/0.9.0/include/apr.hw
is that APR_HAS_THREADS is always defined.

> -- 
> uberSVN: Apache Subversion Made Easy
> http://www.uberSVN.com

Reply via email to