Yes, you are correct. :-( I don't ever compile on Apache where APR_HAS_THREADS is 0 so hadn't picked it up as a problem.
Thanks. Graham On 26 February 2010 10:26, Graeme Smecher <[email protected]> wrote: > Hi, > > I'm building mod_wsgi on a system with the following definition in > apr.h: > > #define APR_HAS_THREADS 0 > > Whether or not this is a good idea is another matter, but I note that > mod_wsgi.c checks this macro in two inconsistent ways. For example, > the definition of 'struct InterpreterObject' uses: > > #if defined(APR_HAS_THREADS) > apr_hash_t *tstate_table; > #else > PyThreadState *tstate; > #endif > > Everywhere else uses e.g. > > #if defined(APR_HAS_THREADS > ... > #else > self->tstate = tstate; > PyThreadState_Swap(save_tstate); > #endif > > When APR_THREADS is 0, as in my build, InterpreterObject is compiled > erroneously with InterpreterObject->tstate_table instead of > InterpreterObject->tstate. Later attempts to access self->tstate > generate compiler errors. > > May I suggest the appended patch? > > cheers, > Graeme > > --- mod_wsgi.c.orig 2010-02-25 15:25:02.000000000 -0800 > +++ mod_wsgi.c 2010-02-25 15:24:40.000000000 -0800 > @@ -4388,7 +4388,7 @@ > static const char *wsgi_python_path = NULL; > static const char *wsgi_python_eggs = NULL; > > -#if defined(APR_HAS_THREADS) > +#if APR_HAS_THREADS > static int wsgi_thread_count = 0; > static apr_threadkey_t *wsgi_thread_key; > #endif > @@ -4398,7 +4398,7 @@ > char *name; > PyInterpreterState *interp; > int owner; > -#if defined(APR_HAS_THREADS) > +#if APR_HAS_THREADS > apr_hash_t *tstate_table; > #else > PyThreadState *tstate; > @@ -5090,7 +5090,7 @@ > */ > > if (self->owner) { > -#if defined(APR_HAS_THREADS) > +#if APR_HAS_THREADS > int thread_id = 0; > int *thread_handle = NULL; > > @@ -5145,7 +5145,7 @@ > PyEval_ReleaseLock(); > > if (*self->name) { > -#if defined(APR_HAS_THREADS) > +#if APR_HAS_THREADS > int thread_id = 0; > int *thread_handle = NULL; > > -- > You received this message because you are subscribed to the Google Groups > "modwsgi" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/modwsgi?hl=en. > > -- You received this message because you are subscribed to the Google Groups "modwsgi" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/modwsgi?hl=en.
