Коллеги, а как вы поступаете при ошибках выделения памяти - если malloc возвращает 0, или new бросает bad_alloc?
Вопрос не к тем, кто пишет какие-нить там драйверы или операционки (там, по-идее, другие требования по надёжности должны быть), а тем, кто пишет всякие полусистемные-полуприкладные вещи ("ядро", "платформу" какой-нить прикладной системы - в резнах компаниях называют по-разному), которые решают более-менее прикладные вещи, но оформлены в виде windows service, or ISAPI extension, и т.д.
С одной стороны, вроде как можно ловить bad_alloc и пытаться хотя-бы закрыться более-менее без потерь и в лог чего-нить написать, а с другой стороны, на что мы вообще можем рассчитавать в такой ситуации, есть ли какие-нить сервисы ОС, которые ещё заведомо живы? Сможем ли мы вообще что-нить осмысленное сделать?
Что делать, если нет памяти?
-
- Уже с Приветом
- Posts: 6789
- Joined: 01 Jun 2001 09:01
Re: Что делать, если нет памяти?
Vovka wrote:Сможем ли мы вообще что-нить осмысленное сделать?
Разумеется. malloc дохнет чаще всего из за фрагментации, когда памяти еще до хрена, а нужного большого куска уже нет.