ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 марта
843632
AlexG (26.05.2018 12:47, просмотров: 6146)
Возникла проблема с динамической памятью в многопоточной программе. Три потока динамически выделяют и освобождают память - огромное количество malloc, free, new, delete по тексту. Очень часто malloc оказывается вызван сразу в двух потоках. Штатный malloc в IAR EWARM, естественно, не реентерабельный и это приводит к падению программы. Все явные вызовы malloc и free я обернул мьютексами и определил свои операторы new и delete. Проблему это до конца не решило, потому что IAR в некоторых случаях использует или свой оператор new или вызывает свой malloc еще каким-нибудь образом напрямую без моей обертки. Какими средствами можно полностью заменить штатный менеджер памяти IARа на свой или сделать так, чтобы любое обращение к нему шло только через мою обертку с мьютексами?