ikd-Tree
ikd-Tree copied to clipboard
bug in rebuild logger ?
https://github.com/hku-mars/ikd-Tree/blob/c0e36a16b6e4d557d3783b16911207f6398dd478/ikd-Tree/ikd_Tree.cpp#L302
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");
}