[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:22 pm (UTC)no subject
Date: 2009-05-05 06:28 pm (UTC)no subject
Date: 2009-05-06 09:51 am (UTC)А я вот сегодня обнаружил, что в стандарте написано одно:
All input and output signals have 16-bit word lengths, which are limited to a range of -16384 to 16383 in 2’s complement notation.
а в reference implementation сделано совсем другое (-32768..32767, естественно). И уже 15 лет это никого не волнует...
no subject
Date: 2009-05-10 06:29 pm (UTC)no subject
Date: 2009-12-26 08:14 am (UTC)