From: Daniel Gruno Date: Mon, 6 Aug 2012 09:26:10 +0000 (+0000) Subject: use the ap_mutex functions to create the mutex instead of the apr_mutex ones. X-Git-Tag: 2.5.0-alpha~6493 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=864e336ee35313c34da57f96bd2ac5db39220dbf;p=thirdparty%2Fapache%2Fhttpd.git use the ap_mutex functions to create the mutex instead of the apr_mutex ones. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1369758 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/lua/lua_vmprep.c b/modules/lua/lua_vmprep.c index 14ae97bd6db..eb9d188f419 100644 --- a/modules/lua/lua_vmprep.c +++ b/modules/lua/lua_vmprep.c @@ -14,21 +14,30 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + + #include "mod_lua.h" #include "http_log.h" #include "apr_uuid.h" #include "lua_config.h" #include "apr_file_info.h" #include "mod_auth.h" +#include "util_mutex.h" APLOG_USE_MODULE(lua); #if APR_HAS_THREADS - apr_thread_mutex_t *ap_lua_mutex; + apr_proc_mutex_t *ap_lua_mutex; + +int ap_lua_register_mutex(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp) +{ + ap_mutex_register(p, "lua-shm", NULL, APR_LOCK_DEFAULT, 0); +} + void ap_lua_init_mutex(apr_pool_t *pool, server_rec *s) { - apr_thread_mutex_create(&ap_lua_mutex, APR_THREAD_MUTEX_DEFAULT, pool); + ap_proc_mutex_create(&ap_lua_mutex, NULL, "lua-shm", NULL, s, pool, 0); } #endif @@ -402,7 +411,7 @@ AP_LUA_DECLARE(lua_State*)ap_lua_get_lua_state(apr_pool_t *lifecycle_pool, ap_lua_server_spec* sspec = NULL; hash = apr_psprintf(r->pool, "reslist:%s", spec->file); #if APR_HAS_THREADS - apr_thread_mutex_lock(ap_lua_mutex); + apr_proc_mutex_lock(ap_lua_mutex); #endif if (apr_pool_userdata_get((void **)&reslist, hash, r->server->process->pool) == APR_SUCCESS) { @@ -427,7 +436,7 @@ AP_LUA_DECLARE(lua_State*)ap_lua_get_lua_state(apr_pool_t *lifecycle_pool, } } #if APR_HAS_THREADS - apr_thread_mutex_unlock(ap_lua_mutex); + apr_proc_mutex_unlock(ap_lua_mutex); #endif } else { diff --git a/modules/lua/mod_lua.c b/modules/lua/mod_lua.c index f72c1dd0aaa..16bd455b948 100644 --- a/modules/lua/mod_lua.c +++ b/modules/lua/mod_lua.c @@ -129,6 +129,7 @@ static void ap_lua_release_state(lua_State* L, ap_lua_vm_spec* spec, request_rec #if APR_HAS_THREADS extern void ap_lua_init_mutex(apr_pool_t *pool, server_rec *s); +extern int ap_lua_register_mutex(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp); #endif static ap_lua_vm_spec *create_vm_spec(apr_pool_t **lifecycle_pool, @@ -1598,6 +1599,7 @@ static void lua_register_hooks(apr_pool_t *p) APR_HOOK_REALLY_FIRST); ap_hook_handler(lua_map_handler, NULL, NULL, AP_LUA_HOOK_FIRST); #if APR_HAS_THREADS + ap_hook_pre_config(ap_lua_register_mutex, NULL, NULL, APR_HOOK_MIDDLE); ap_hook_child_init(ap_lua_init_mutex, NULL, NULL, APR_HOOK_MIDDLE); #endif /* providers */