-void init_nodes(void) {
- node_tree = splay_alloc_tree((splay_compare_t) node_compare, (splay_action_t) free_node);
- node_udp_cache = hash_alloc(0x100, sizeof(sockaddr_t));
+void init_nodes(meshlink_handle_t *mesh) {
+ pthread_mutex_lock(&(mesh->nodes_mutex));
+ mesh->nodes = splay_alloc_tree((splay_compare_t) node_compare, (splay_action_t) free_node);
+ mesh->node_udp_cache = hash_alloc(0x100, sizeof(sockaddr_t));
+ pthread_mutex_unlock(&(mesh->nodes_mutex));