Еще вот этот вот фрагмент:
while(cluster_node_desc_type* node_descp = get_cluster_node(current_cluster_node++)){
if(node_descp->is_alive() and node_descp->is_idle()){
while(journal_store(node_descp->get_current_storage_chunk()).shared_descriptor_count() == 0){
if(node_descp->get_current_storage_chunk() >= get_journal_storage_chunk_count()){
break;
}else{
node_descp->set_current_storage_chunk(node_descp->get_current_storage_chunk());
node_descp->set_shared_segment(journal_store(node_descp->get_current_storage_chunk()).first_descriptor_shared());
continue;
}
}
if(node_descp->get_shared_segment() == EMPTY_SEGMENT)
continue;
}
while внутри whild и в обоих используются continue... Тем более, что внутри вложенного while в секции else вроде как continue и не к чему... Говнокодом попахивает. Напрашивается вынесение внутреннего while в отдельную функцию или в локальную лямбду, раз уж у вас там что-то похожее на C++11.