Exemple #1
0
static void cacheex_del_hitcache(struct s_client *cl, ECM_REQUEST *er)
{
	HIT_KEY search;
	CACHE_HIT *result;

	memset(&search, 0, sizeof(HIT_KEY));
	search.caid = er->caid;
	search.prid = er->prid;
	search.srvid = er->srvid;

	if(cl && cl->grp)
		{
			result = find_hash_table(&ht_hitcache, &search, sizeof(HIT_KEY), &cacheex_compare_hitkey);
			while(result)
			{
				result->grp &= ~cl->grp;
				result->grp_last_max_hitcache_time &= ~cl->grp;
				result = find_hash_table(&ht_hitcache, &search, sizeof(HIT_KEY), &cacheex_compare_hitkey);
			}
		}

	SAFE_RWLOCK_WRLOCK(&hitcache_lock);
	search_remove_elem_hash_table(&ht_hitcache, &search, sizeof(HIT_KEY), &cacheex_compare_hitkey);
    SAFE_RWLOCK_UNLOCK(&hitcache_lock);
}
Exemple #2
0
void del_hitcache(ECM_REQUEST *er) {
	HIT_KEY search;

	memset(&search, 0, sizeof(HIT_KEY));
	search.caid = er->caid;
	search.prid = er->prid;
	search.srvid = er->srvid;

	pthread_rwlock_wrlock(&hitcache_lock);
	search_remove_elem_hash_table(&ht_hitcache, &search, sizeof(HIT_KEY), &compare_hitkey);
    pthread_rwlock_unlock(&hitcache_lock);
}
static void cacheex_del_hitcache(ECM_REQUEST *er)
{
	HIT_KEY search;

	memset(&search, 0, sizeof(HIT_KEY));
	search.caid = er->caid;
	search.prid = er->prid;
	search.srvid = er->srvid;

	SAFE_RWLOCK_WRLOCK(&hitcache_lock);
	search_remove_elem_hash_table(&ht_hitcache, &search, sizeof(HIT_KEY), &cacheex_compare_hitkey);
    SAFE_RWLOCK_UNLOCK(&hitcache_lock);
}