re-org platform APIs, simplify porting process (#201)
Co-authored-by: Xu Jun <jun1.xu@intel.com>
This commit is contained in:
@ -4,9 +4,6 @@
|
||||
*/
|
||||
|
||||
#include "bh_hashmap.h"
|
||||
#include "bh_log.h"
|
||||
#include "bh_thread.h"
|
||||
|
||||
|
||||
typedef struct HashMapElem {
|
||||
void *key;
|
||||
@ -65,7 +62,7 @@ bh_hash_map_create(uint32 size, bool use_lock,
|
||||
map->lock = (korp_mutex*)
|
||||
((uint8*)map + offsetof(HashMap, elements)
|
||||
+ sizeof(HashMapElem) * size);
|
||||
if (vm_mutex_init(map->lock)) {
|
||||
if (os_mutex_init(map->lock)) {
|
||||
LOG_ERROR("HashMap create failed: init map lock failed.\n");
|
||||
BH_FREE(map);
|
||||
return NULL;
|
||||
@ -92,7 +89,7 @@ bh_hash_map_insert(HashMap *map, void *key, void *value)
|
||||
}
|
||||
|
||||
if (map->lock) {
|
||||
vm_mutex_lock(map->lock);
|
||||
os_mutex_lock(map->lock);
|
||||
}
|
||||
|
||||
index = map->hash_func(key) % map->size;
|
||||
@ -116,13 +113,13 @@ bh_hash_map_insert(HashMap *map, void *key, void *value)
|
||||
map->elements[index] = elem;
|
||||
|
||||
if (map->lock) {
|
||||
vm_mutex_unlock(map->lock);
|
||||
os_mutex_unlock(map->lock);
|
||||
}
|
||||
return true;
|
||||
|
||||
fail:
|
||||
if (map->lock) {
|
||||
vm_mutex_unlock(map->lock);
|
||||
os_mutex_unlock(map->lock);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -140,7 +137,7 @@ bh_hash_map_find(HashMap *map, void *key)
|
||||
}
|
||||
|
||||
if (map->lock) {
|
||||
vm_mutex_lock(map->lock);
|
||||
os_mutex_lock(map->lock);
|
||||
}
|
||||
|
||||
index = map->hash_func(key) % map->size;
|
||||
@ -150,7 +147,7 @@ bh_hash_map_find(HashMap *map, void *key)
|
||||
if (map->key_equal_func(elem->key, key)) {
|
||||
value = elem->value;
|
||||
if (map->lock) {
|
||||
vm_mutex_unlock(map->lock);
|
||||
os_mutex_unlock(map->lock);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
@ -158,7 +155,7 @@ bh_hash_map_find(HashMap *map, void *key)
|
||||
}
|
||||
|
||||
if (map->lock) {
|
||||
vm_mutex_unlock(map->lock);
|
||||
os_mutex_unlock(map->lock);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
@ -176,7 +173,7 @@ bh_hash_map_update(HashMap *map, void *key, void *value,
|
||||
}
|
||||
|
||||
if (map->lock) {
|
||||
vm_mutex_lock(map->lock);
|
||||
os_mutex_lock(map->lock);
|
||||
}
|
||||
|
||||
index = map->hash_func(key) % map->size;
|
||||
@ -188,7 +185,7 @@ bh_hash_map_update(HashMap *map, void *key, void *value,
|
||||
*p_old_value = elem->value;
|
||||
elem->value = value;
|
||||
if (map->lock) {
|
||||
vm_mutex_unlock(map->lock);
|
||||
os_mutex_unlock(map->lock);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -196,7 +193,7 @@ bh_hash_map_update(HashMap *map, void *key, void *value,
|
||||
}
|
||||
|
||||
if (map->lock) {
|
||||
vm_mutex_unlock(map->lock);
|
||||
os_mutex_unlock(map->lock);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -214,7 +211,7 @@ bh_hash_map_remove(HashMap *map, void *key,
|
||||
}
|
||||
|
||||
if (map->lock) {
|
||||
vm_mutex_lock(map->lock);
|
||||
os_mutex_lock(map->lock);
|
||||
}
|
||||
|
||||
index = map->hash_func(key) % map->size;
|
||||
@ -235,7 +232,7 @@ bh_hash_map_remove(HashMap *map, void *key,
|
||||
BH_FREE(elem);
|
||||
|
||||
if (map->lock) {
|
||||
vm_mutex_unlock(map->lock);
|
||||
os_mutex_unlock(map->lock);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -245,7 +242,7 @@ bh_hash_map_remove(HashMap *map, void *key,
|
||||
}
|
||||
|
||||
if (map->lock) {
|
||||
vm_mutex_unlock(map->lock);
|
||||
os_mutex_unlock(map->lock);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -262,7 +259,7 @@ bh_hash_map_destroy(HashMap *map)
|
||||
}
|
||||
|
||||
if (map->lock) {
|
||||
vm_mutex_lock(map->lock);
|
||||
os_mutex_lock(map->lock);
|
||||
}
|
||||
|
||||
for (index = 0; index < map->size; index++) {
|
||||
@ -283,8 +280,8 @@ bh_hash_map_destroy(HashMap *map)
|
||||
}
|
||||
|
||||
if (map->lock) {
|
||||
vm_mutex_unlock(map->lock);
|
||||
vm_mutex_destroy(map->lock);
|
||||
os_mutex_unlock(map->lock);
|
||||
os_mutex_destroy(map->lock);
|
||||
}
|
||||
BH_FREE(map);
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user