Почему ZooKeeper нужно уснуть, чтобы создать постоянные узлы

Я хочу создать постоянные узлы в ZooKeeper. Для этого у меня есть две функции:

void create_completion(int rc, const char * value, const void * data){
// empty callback at this moment
}
void create(const char * path, const char * value){
zoo_acreate(zh, path, value, 0, &ZOO_OPEN_ACL_UNSAFE, 0, create_completion, NULL);
}

Что мне интересно, так это то, что если я позвоню create функция от моего main функция, а затем просто прекратить, затем данные не загружаются:

int main(){
... some code to initialize session
create("/newnode", ""); // node is not created
zookeeper_close(zh);
return 0;
}

Принимая во внимание, что если я делаю:

int main(){
... some code to initialize session
create("/newnode", ""); // node is created
bool flag = true;
while(flag){
usleep(10000000);
flag = false;
}
zookeeper_close(zh);
return 0;
}

затем "/newnode" загружен в ZooKeeper, Итак, что с этим не так и зачем мне действительно нужен этот цикл?

0

Решение

Задача ещё не решена.

Другие решения