httpd-modules-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simone Caruso <>
Subject Help with apr mutex
Date Mon, 28 Feb 2011 17:26:17 GMT
Hi all,

I wrote a simple cache inside my module with apr_shm and apr_rmm, but I have problems with
apr mutex...

I have this peace of code:

static apr_global_mutex_t *mtx = NULL;
static void module_translate_name(request_rec *r)
	if(apr_global_mutex_trylock(mtx) == APR_EBUSY)
		ap_log_rerror(APLOG_MARK, APLOG_WARNING|APLOG_NOERRNO, 0, r, "Memory Locked!! ");
	element = get_from_cache();
	if(element == NULL){
		element = insert_into_cache();

static void module_post_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec
	result = apr_global_mutex_create(&mtx, "cache_entries_lck", APR_LOCK_DEFAULT, p);

static void mod_vhost_ldap_child_init(apr_pool_t * p, server_rec * s)
	apr_status_t ret;
	ret = apr_global_mutex_child_init(&mtx, "cache_entries_lck", p);

During my tests with 'ab -c 15 -n 3000' i NEVER get the "Memory Locked" error in logs, plus
i get duplicated entries in 
cache but I don't know why!

Does someone have an idea? (please consider i use apr_global_mutex_trylock() only for test)

Simone Caruso

View raw message