Example #1
0
//---------------------------------------------------------------------------------------------------------------------
int pmip_cache_init(void)
{
    int ret;
    int mutex_return_code;
    if (pthread_rwlock_init(&pmip_lock, NULL)) {
        return -1;
    }
    mutex_return_code = pthread_rwlock_wrlock(&pmip_lock);
    if (mutex_return_code != 0) {
        dbg("pthread_rwlock_wrlock(&pmip_lock) %s\n", strerror(mutex_return_code));
    }

    ret = pmip_hash_init(&g_pmip_hash, PMIP_CACHE_BUCKETS);

    mutex_return_code = pthread_rwlock_unlock(&pmip_lock);
    if (mutex_return_code != 0) {
        dbg("pthread_rwlock_unlock(&pmip_lock) %s\n", strerror(mutex_return_code));
    }

    #ifdef ENABLE_VT
    if (ret < 0)
        return ret;
    ret = vt_pbc_init();
    #endif
    return ret;
}
//---------------------------------------------------------------------------------------------------------------------
int pmip_cache_init(void)
{
	int ret;
	if (pthread_rwlock_init(&pmip_lock, NULL)) {
		return -1;
	}
	pthread_rwlock_wrlock(&pmip_lock);
	ret = hash_init(&g_pmip_hash, DOUBLE_ADDR, PMIP_CACHE_BUCKETS);
	pthread_rwlock_unlock(&pmip_lock);
#ifdef ENABLE_VT
	if (ret < 0)
		return ret;
	ret = vt_pbc_init();
#endif
	return ret;
}