feat(tree): add rwlock

This commit is contained in:
Jef Roosens 2023-03-07 12:12:46 +01:00
parent 83b3198a49
commit 1c563d8421
Signed by: Jef Roosens
GPG key ID: B75D4F293C7052DB
3 changed files with 32 additions and 0 deletions

View file

@ -114,3 +114,15 @@ bool vieter_tree_validate(vieter_tree *tree) {
return vieter_tree_node_get(tree->root, vieter_tree_node_black) &&
vieter_tree_node_validate(tree->root, 0, expected_black_nodes);
}
int vieter_tree_rlock(vieter_tree *tree) {
return pthread_rwlock_rdlock(&tree->lock);
}
int vieter_tree_wlock(vieter_tree *tree) {
return pthread_rwlock_wrlock(&tree->lock);
}
int vieter_tree_unlock(vieter_tree *tree) {
return pthread_rwlock_unlock(&tree->lock);
}

View file

@ -1,11 +1,13 @@
#include "vieter_tree.h"
#include "vieter_tree_node.h"
#include <pthread.h>
#include <stdbool.h>
struct vieter_tree {
uint64_t size;
vieter_tree_node *root;
pthread_rwlock_t lock;
};
/*