Re[26]: Собеседования в Яндекс++
От: so5team https://stiffstream.com
Дата: 04.06.19 18:39
Оценка:
Еще вот этот вот фрагмент:
       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.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.