Нет. я передаю в функцию указатель на корень дерева, если ставлю больше количество итераций, то программа выполняется довольно долго, но дерево так и остается пустым.
void *do_operation(void *arg)
{
int i = 0;
struct rb_tree *root = arg;
while (i != 100)
{
root = Insert(root, rand() % 100);
i++;
}