парни видимо рады что 1024 == 1024
Дефицит памяти - это относительно нормальная история в случае с ОС. У тебя 1Гб физической памяти, пара процессов попросила по 512Мб но пока эту память не трогало. Помимо этого есть разного рода кеши, структуры ядра итд. И одно дело у тебя приложение просит ещё памяти(и тут можно вернуть ENOMEM), а другое - когда память нужна драйверу фс. Прямо сейчас дать столько попросили ты не можешь, но вот подрезав кеши, попозже - вполне. Но всё, что может сделать рантайм - это просто свалиться с паникой. Собственно, те же претензии к тому что сейчас на rust пытается въехать в ядро: паника там где её быть не должно.
дефицит памяти в ОС да, а вот в приложении нет.
по твоему проблема в том что паника, а не обрабатываемая ошибка?
Именно. Но тогда придется забыть про синтаксис вида v := &Foo{} итп вещи
Вместо этого: v, err := new(Foo) if err != nil
и так есть уже GC, зачем все эти malloc,free и прочее
Ещё на каждый «go» добавить возможную ошибку
Так gc уберёт за тобой ))
Угу, там тоже аллокация
Обсуждают сегодня