bug in rebuild logger ?
huanglilong opened this issue · 0 comments
huanglilong commented
ikd-Tree/ikd-Tree/ikd_Tree.cpp
Line 302 in c0e36a1
if (int(Rebuild_PCL_Storage.size()) > 0){
BuildTree(&new_root_node, 0, Rebuild_PCL_Storage.size()-1, Rebuild_PCL_Storage);
// Rebuild has been done. Updates the blocked operations into the new tree
pthread_mutex_lock(&working_flag_mutex);
pthread_mutex_lock(&rebuild_logger_mutex_lock);
int tmp_counter = 0;
while (!Rebuild_Logger.empty()){
Operation = Rebuild_Logger.front();
max_queue_size = max(max_queue_size, Rebuild_Logger.size());
Rebuild_Logger.pop();
pthread_mutex_unlock(&rebuild_logger_mutex_lock);
pthread_mutex_unlock(&working_flag_mutex);
run_operation(&new_root_node, Operation);
tmp_counter ++;
if (tmp_counter % 10 == 0) usleep(1);
pthread_mutex_lock(&working_flag_mutex);
pthread_mutex_lock(&rebuild_logger_mutex_lock);
}
rebuild_flag = false; // rebuild flag should in here
pthread_mutex_unlock(&rebuild_logger_mutex_lock);
}
after fix this issue, this check not need
if (!Rebuild_Logger.empty()){
printf("\n\n\n\n\n\n\n\n\n\n\n ERROR!!! \n\n\n\n\n\n\n\n\n");
}