예제 #1
0
int avl_traverse_lock(avl_tree_lock *tree, int (*callback)(void * /*entry*/, void * /*data*/), void *data) {
    int ret;
    avl_read_lock(tree);
    ret = avl_traverse(&tree->avl_tree, callback, data);
    avl_unlock(tree);
    return ret;
}
예제 #2
0
파일: avl.c 프로젝트: darrentangdt/netdata
int avl_traverse_lock(avl_tree_lock *t, int (*callback)(void *entry, void *data), void *data) {
    int ret;
    avl_read_lock(t);
    ret = avl_traverse(&t->avl_tree, callback, data);
    avl_unlock(t);
    return ret;
}
예제 #3
0
avl *avl_insert_lock(avl_tree_lock *tree, avl *item) {
    avl_write_lock(tree);
    avl * ret = avl_insert(&tree->avl_tree, item);
    avl_unlock(tree);
    return ret;
}
예제 #4
0
avl * avl_remove_lock(avl_tree_lock *tree, avl *item) {
    avl_write_lock(tree);
    avl *ret = avl_remove(&tree->avl_tree, item);
    avl_unlock(tree);
    return ret;
}
예제 #5
0
avl *avl_search_lock(avl_tree_lock *tree, avl *item) {
    avl_read_lock(tree);
    avl *ret = avl_search(&tree->avl_tree, item);
    avl_unlock(tree);
    return ret;
}
예제 #6
0
파일: avl.c 프로젝트: darrentangdt/netdata
avl *avl_insert_lock(avl_tree_lock *t, avl *a) {
    avl_write_lock(t);
    avl * ret = avl_insert(&t->avl_tree, a);
    avl_unlock(t);
    return ret;
}
예제 #7
0
파일: avl.c 프로젝트: darrentangdt/netdata
avl * avl_remove_lock(avl_tree_lock *t, avl *a) {
    avl_write_lock(t);
    avl *ret = avl_remove(&t->avl_tree, a);
    avl_unlock(t);
    return ret;
}
예제 #8
0
파일: avl.c 프로젝트: darrentangdt/netdata
avl *avl_search_lock(avl_tree_lock *t, avl *a) {
    avl_read_lock(t);
    avl *ret = avl_search(&t->avl_tree, a);
    avl_unlock(t);
    return ret;
}