История изменений
Исправление no-such-file, (текущая версия) :
Варинт 2, в духе stm
Делаем глобальный shared state x и признак «x менялся». В потоке имеем локальную копию x. При входе в защищённую секцию копируем глобальный x в локальный, работаем ничего не проверяем. По окончании, проверяем глобальный x. Если он не менялся, всё ок, условие выполнялось на протяжении всей защищённой секции, обновляем глобальный x. Если он менялся, условие было нарушено, делаем харакири.
Исходная версия no-such-file, :
Варинт 2, в духе stm
Делаем глобальный shared state x и признак «x менялся». В каждом потоке имеем локальную копию x. При входе в защищённую секцию копируем глобальный x в локальный, работаем ничего не проверяем. По окончании, проверяем глобальный x. Если он не менялся, всё ок, условие выполнялось на протяжении всей защищённой секции, обновляем глобальный x. Если он менялся, условие было нарушено, делаем харакири.