Здравствуйте, so5team, Вы писали:
S>Глаза разуйте: у вас нет ничего после else. Ваш while имеет вот такой вид:
Это вы глаза разуйте. Это что? Пушкин?
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());
S>Было очевидно, что вы не пробовали. Пропробовали бы, то увидели бы, что ваш основной код внутри первого while сократился бы раза в 1.5. Что сделало бы его понятнее.
Ещё раз гляньте выше. Там лямбды вообще не к месту, и только синтаксического хлама добавят.
S>Давайте сперва разберемся с тем, понимаете ли вы вообще свой код.
Я то понимаю, боюсь что Вы всё никак не допрёте.
S>Если у вас get_current_storage_chunk() не является идемпотентной операцией, т.е. get_current_storage_chunk() каждый раз возвращает разное значение
Между вызовом set, get возвращает одно и то же значение, после-другое. Это очевидно, Карл!
S>А если же у вас get идемпотентен, то вызывать set_current_storage_chunk для того, чтобы еще раз назначить значение для current_storage_chunk... Ну как-то странно это.
set вызывается один раз. Один раз, Карл. Всё остальное время мы получаем значение через get. Зачем через get? Потому-что set могут вызвать другие, это очевидно же.
>S В общем, куда не ткни, запашок какой-то подозрительный начинает доноситься.
В общем, это Вы не въезжаете в достаточно очевидные вещи, которые там расписаны чёрным по белому, ясней некуда. Но до Вас это всё никак не доходит. Может это пованивает не от кода. а от Ваших умственных способностей?