[erlang] Сапожник без сапог
May. 4th, 2009 07:52 pmС тем, что нельзя открыть файл-устройство, уже столкнулись (отвечает eisdir'ом, хотя совсем не каталог). В рассылках нашлось обоснование - мол, "а что если оно заблокируется на ожидании?" (я вообще-то /dev/urandom пытался открыть, и это мои проблемы, если что-то заблокируется). А сегодня новое. Цитирую коллегу...
Я обнаружил интересную фичу: если файл открыт с опцией compressed, то
file:position/2 за пределы файла напрочь завешивает всю е-ноду вплоть до
момента, пока кто-то не допишет в этот файл нужное количество данных. При
этом нет разницы, зазипован ли файл на самом деле. А ведь единственный
способ узнать реальный размер зазипованных данных - это поблочно прочесть
его весь до eof`а!!!
Интересно, сколько ещё таких недопараллельностей таится в "параллельной" среде...
Я обнаружил интересную фичу: если файл открыт с опцией compressed, то
file:position/2 за пределы файла напрочь завешивает всю е-ноду вплоть до
момента, пока кто-то не допишет в этот файл нужное количество данных. При
этом нет разницы, зазипован ли файл на самом деле. А ведь единственный
способ узнать реальный размер зазипованных данных - это поблочно прочесть
его весь до eof`а!!!
Интересно, сколько ещё таких недопараллельностей таится в "параллельной" среде...
no subject
Date: 2009-05-05 06:28 pm (UTC)