|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : vitus@ice.ru 2:5020/400 21 Jan 2002 23:47:36 To : Zahar Kiselev Subject : Re: "Hоpмальный" -------------------------------------------------------------------------------- Zahar Kiselev <Zahar.Kiselev@p1.f382.n5030.z2.fidonet.org> wrote: ZK>Своп этот нужен только на "крайний случай" - если что-то толстое вдруг память ZK>сожрало, чтобы его можно было корректно завершить и машина не встала раком. ZK>По моему опыту - линуксовые програмы в большинстве своем совершенно не ZK>способны обрабатывать ситуацию нехватки памяти. Такое впечатление, что ZK>программисты вообще не проверяют успешность выделения памяти. Вопрос в том, кто виноват - язык C, в котором нет нормального механизма exceptions или учителя программирования, которые учат пользоваться стандартными функциями C как процедурами, не проверяя кода завершения. Впрочем malloc это все равно функция как не крути. С другой стороны большинство программ обрабатывают неуспешность malloc одним единственным способом - perror("malloc");exit(1); А это как раз то, чего тебе, насколько я понимаю, хотелось бы избежать. Вообще - интересная идея - блокирующий malloc - если памяти нехвата, он делает sleep на несколько секунд (или если это блокинующий sbrk, то до первого освобождения памяти) и потом повторяет операцию. А NULL возвращает только при убийстве сигнала. По-моему, такой malloc практически заменяет swap по NFS - программы смерть которых ты называешь "система раком встала" будут просто тихо ждать пока им память отдадут. -- Victor Wagner vitus@ice.ru Chief Technical Officer Office:7-(095)-748-53-88 Communiware.Net Home: 7-(095)-135-46-61 http://www.communiware.net http://www.ice.ru/~vitus Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: Talk.Mail.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/64884f47286e.html, оценка из 5, голосов 10
|