Тема: malloc -> new
Показать сообщение отдельно
  #12  
Старый 07.02.2023, 09:32
Alexey Vissarionov
Guest
 
Сообщений: n/a
По умолчанию Как бы так голдед зарефакторить?

Alexey Vissarionov написал(а) к Nil A в Feb 23 08:08:08 по местному времени:

Доброго времени суток, Nil!
07 Feb 2023 07:27:14, ты -> мне:

AV>> Выделиться-то он, может быть, и выделится, но при попытке работать
AV>> с этим огромным блоком в какой-то момент прилетит SIGSEGV.
NA> Дядь Гремлин, косячишь второй раз при мне.

Да мне, наверное, уже пора на какую-нибудь кнопку в эхотаге (вот, кстати, и антиоффтопик) повесить макрос для вставки фразы наподобие "пишу по памяти, проверять некогда"...

NA> Первый раз был, когда утверждал, что на линуксовый epoll(2) можно
NA> повесить файловые операции, и ловить готовность также, как и на
NA> сокетах, но я тебе тогда указал на строчки в ядре, где тип
NA> дескриптора проверяется.

Проверяется, и пусть проверяется... Да, смысла в epoll() для файлов не очень много, но теоретически ничего не мешало: дескрипторы - они и есть дескрипторы.

NA> Но тут то, в линуксах эти маллоки, если много просишь, то они уходят
NA> в mmap(2),

Ну да - щас почти все через анонимный mmap() выделяется.

NA> и тот тебе даст без вопросов, если такой размер одним куском можно
NA> разместить в адресном пространстве процесса, привет все эти лимиты,

На 64-битных системах с околоединичной вероятностью таки можно. Жалко только, что адресное пространство - это не реально доступная физическая память :-)

NA> хотя Виталий утверждает, что маллок проверит размер на ram+swap, но
NA> мне сейчас лень в либси лезть.

А уж мне-то как лень...

NA> А вот дальше с mmap начнутся чудеса, когда ядро не сможет тебе
NA> странички подтянуть, потому что вся память кончилась, то тут будет
NA> SIGBUS, и не как не SIGSEGV.

Если не сможет подтянуть - SIGBUS. Если полезть по указателю в дальний космос - соответственно, SIGSEGV.

NA> Я уже сообщением ранее писал про SIGBUS. Но реально, ты будешь закилян
NA> oom killer быстрее, чем словишь SIGBUS, хотя есть варианты.

На практике - да. Причем не абы каким, а из memory cgroup.

NA>>> но мне пофиг, ты просто не говорил ещё с этими, которые на
NA>>> ВаткомСи сидят, у них там чудеса вообще.
AV>> Вот как раз поддержку DOS можно выкидывать совершенно спокойно.
NA> По мои данным, под DOS собирают DJGPP, который можно найти
NA> современный, даже уровня std=c++14. А вот Watcom C/C++ собирают
NA> под OS/2, о чём я немного общался с Andrew Clarke <3:633/267>.

В любом случае эти системы являются если и не маргинальными, то как минимум экзотическими, а следовательно и сборки под них вторичны.

Как и архитектуры, отличные от x86_64 и aarch64.


--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii

... GPG: 8832FE9FA791F7968AC96E4E909DAC45EF3B1FA8 @ hkp://keys.gnupg.net
--- /bin/vi
Ответить с цитированием