LINUX.ORG.RU

История изменений

Исправление monk, (текущая версия) :

чисто модельный. один тред пишет в список пути файлов, что надо удалить. другой тред получает эти пути, удаляет файлы или диры. ты взял и красиво снаружи прихлопнул первый тред. и второй вместо пути к дире получил недоформированный путь прям к твоей хоум дире

Ещё раз. Либо список передаётся второму потоку по факту формирования и второй поток ничего не получит, либо он формируется внутри того же dynamic-wind и в финализаторе либо завершается, либо очищается.

А транзакции — это, конечно, хорошо. Но встречаются реально они только в СУБД. Если не считать упомянутого atomic, который обеспечит транзакцию ценой остановки всей остальной программы.

Исходная версия monk, :

чисто модельный. один тред пишет в список пути файлов, что надо удалить. другой тред получает эти пути, удаляет файлы или диры. ты взял и красиво снаружи прихлопнул первый тред. и второй вместо пути к дире получил недоформированный путь прям к твоей хоум дире

Ещё раз. Либо список передаётся второму потоку по факту формирования и второй поток ничего не получит, либо он формируется внутри того же dynamic-wind и в финализаторе либо завершается, либо очищается.

А транзакции — это, конечно, хорошо. Но встречаются реально они только в СУБД. Если не считать упомянутого atomic, который обеспечит транзакцию ценой остановки всей остановки всей остальной программы.