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