реклама на сайте
подробности

 
 
> new и scmRTOS, Можно ли прерывать операцию new?!
Colobox
сообщение Dec 8 2008, 10:11
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 31-10-07
Пользователь №: 31 901



Делаю проект с использованием оси и с динамическим созданием объектов.
Причем, создание и удаление объектов производяться в различных по приоритету (разумеется) процессах. Программа работает несколько минут, потом виснет (включая айдл процесс, тикает только системник). Наибольший адрес объекта, созданного когда-либо в рантайме, вылетает далеко за пределы кучи. Все сводится к тому, что проблема в создании обекта в одном из процессов. Так вот вопрос, можно ли безопасно создавать объекты в разных процессах, не опасаясь, что процедура "new" будет прервана высшестоящим процессом, в котором тоже запустится new, c вытекающим сбоем в работе динамической памяти??
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Dec 8 2008, 11:15
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Colobox @ Dec 8 2008, 12:11) *
можно ли безопасно создавать объекты в разных процессах, не опасаясь, что процедура "new" будет прервана высшестоящим процессом,
Нет, нельзя. Переопределите глобальные operator new() и operator delete() - обрамите в нем malloc() и free() глобальным TMutex.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Colobox
сообщение Dec 8 2008, 12:22
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 31-10-07
Пользователь №: 31 901



Цитата(Сергей Борщ @ Dec 8 2008, 14:15) *
Нет, нельзя. Переопределите глобальные operator new() и operator delete() - обрамите в нем malloc() и free() глобальным TMutex.

Опс, а как там выделить эти malloc и free? Если не сложно, можно небольшой примерчик?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th August 2025 - 10:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01386 секунд с 7
ELECTRONIX ©2004-2016