RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Интересное о malloc в multithreding'е


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : XPEH, 2:5050/13.29, http://zuko.mitm.ru/
To : Joseph
Subj : Интересное о malloc в multithreding'е

> Странную вещь обнаружил работая под VAC 3.08
> Есть сервер, запускающий нитки обслуживания. Эти нитки запускают расчетные нитки, которые раз в секунду используют malloc для резервирования небольшого количества памяти.
> Запускаем под отладчиком .
> коннектимся. стартуем расчетную нитку - все ок.
> еще коннектимся вторым клиентом и запускаем все как раньше - имеем на вызове malloc системный иксепшн - XCPT_GUARD_PAGE_VIOLATION
> Это не смертельно, но противно . обидно за трату ресурса и, совершенно непонятно.
> Увеличение стека нитки не помогает.
> Может кто разбирался с этим?

у ниццка в socksd тоже самое наблюдается.
насколько я понимаю, вакк коммитит только первую страницу стека.
остальные коммитятся по обращению к ним - когда и возникает это самое эхепшен.

можно ли это изменить какими нибуть настройками - надо читать в доке.
вот в VP например прямо при создании нити можно указывать должен ли ее стек
быть закоммичен или нет.

попутно.
раз у тебя очень схожая задача - есть огромная просьба, проследить,
течет ли твоя программа памятью за скажем 10 суток работы.
потому что упомянутый выше socksd именно течет, причем применяя все инструменты
отладки мы с ниццком до сих пор не можем выяснить причину :(
поттекает редко и небольшими порциями, кажется именно когда несколько параллельно
ниток обслуживают запросы. так сразу и не заметишь - но за десятки суток запросто
утекает на мегабайты.


Sat 01 May 2004 17:00 Mozilla/5.0 (OS/2; U; Warp 4.5; en-US; rv:1.2.1) Gecko/20021




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.