Исправление monk, (текущая версия) :
чисто модельный. один тред пишет в список пути файлов, что надо удалить. другой тред получает эти пути, удаляет файлы или диры. ты взял и красиво снаружи прихлопнул первый тред. и второй вместо пути к дире получил недоформированный путь прям к твоей хоум дире
Ещё раз. Либо список передаётся второму потоку по факту формирования и второй поток ничего не получит, либо он формируется внутри того же dynamic-wind и в финализаторе либо завершается, либо очищается.
А транзакции — это, конечно, хорошо. Но встречаются реально они только в СУБД. Если не считать упомянутого atomic, который обеспечит транзакцию ценой остановки всей остальной программы.
Исходная версия monk, :
чисто модельный. один тред пишет в список пути файлов, что надо удалить. другой тред получает эти пути, удаляет файлы или диры. ты взял и красиво снаружи прихлопнул первый тред. и второй вместо пути к дире получил недоформированный путь прям к твоей хоум дире
Ещё раз. Либо список передаётся второму потоку по факту формирования и второй поток ничего не получит, либо он формируется внутри того же dynamic-wind и в финализаторе либо завершается, либо очищается.
А транзакции — это, конечно, хорошо. Но встречаются реально они только в СУБД. Если не считать упомянутого atomic, который обеспечит транзакцию ценой остановки всей остановки всей остальной программы.