diff --git a/src/modules/perl/mod_perl.c b/src/modules/perl/mod_perl.c index 6dd9027..dd1f52a 100644 --- a/src/modules/perl/mod_perl.c +++ b/src/modules/perl/mod_perl.c @@ -653,6 +653,8 @@ int modperl_is_running(void) int modperl_hook_pre_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp) { + int threaded = 0; + int async = 0; #if AP_MODULE_MAGIC_AT_LEAST(20110329,0) ap_reserve_module_slots_directive("PerlLoadModule"); #endif @@ -662,6 +664,15 @@ int modperl_hook_pre_config(apr_pool_t *p, apr_pool_t *plog, /* perl 5.8.1+ */ modperl_hash_seed_init(p); + ap_mpm_query(AP_MPMQ_IS_THREADED, &threaded); + ap_mpm_query(AP_MPMQ_IS_ASYNC, &async); + + if (async && threaded) { + ap_log_perror(APLOG_MARK, APLOG_CRIT, 0, ptemp, APLOGNO(00001) + "mod_perl is not compatible with a threaded and async MPM."); + return !OK; + } + return OK; }