See https://svn.apache.org/r1663375 for a related fix by covener.
Which, by the way, should probably be backported to 2.4; I see a failure
on a buildbot which deliberately builds with non-threaded APR to ensure
that this configuration remains in SVN's test matrix:
https://ci.apache.org/builders/svn-bb-openbsd/builds/272/steps/Build/logs/stdio
This patch hasn't even been compile tested but looks obvious enough.
Fine to commit?
Index: modules/test/mod_dialup.c
===================================================================
--- modules/test/mod_dialup.c (revision 1850735)
+++ modules/test/mod_dialup.c (working copy)
@@ -107,7 +107,9 @@ dialup_callback(void *baton)
dialup_baton_t *db = (dialup_baton_t *)baton;
conn_rec *c = db->r->connection;
+#if APR_HAS_THREADS
apr_thread_mutex_lock(db->r->invoke_mtx);
+#endif
status = dialup_send_pulse(db);
@@ -115,7 +117,9 @@ dialup_callback(void *baton)
ap_mpm_register_timed_callback(apr_time_from_sec(1), dialup_callback,
baton);
}
else if (status == DONE) {
+#if APR_HAS_THREADS
apr_thread_mutex_unlock(db->r->invoke_mtx);
+#endif
ap_finalize_request_protocol(db->r);
ap_process_request_after_handler(db->r);
return;
@@ -127,7 +131,9 @@ dialup_callback(void *baton)
ap_die(status, db->r);
}
+#if APR_HAS_THREADS
apr_thread_mutex_unlock(db->r->invoke_mtx);
+#endif
ap_mpm_resume_suspended(c);
}