![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| EgorTheBlade |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 5.12.2009 Репутация: нет Всего: -1 |
Добрый День.Подскажите как найти причину проблемы .
Деструкор пораждает DeadLock для потоков .С чем это может быть связано?Кто нибудь сталкивался с этим? Моя версия:Неправильное распределение и удаление памяти в классах. |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
||||
|
||||
| EgorTheBlade |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 5.12.2009 Репутация: нет Всего: -1 |
Я причину нашел.Но почему так происходить.
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Этот вопрос достоин висеть в Лувре.
Такая загадочность даже Босху не снилась Это сообщение отредактировал(а) azesmcar - 30.9.2010, 10:10 |
|||
|
||||
| EgorTheBlade |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 5.12.2009 Репутация: нет Всего: -1 |
Вы знаете что таблетка лечит от простуды.И знаете какой орган.Но как ? Какие могут быть версии?
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Я уже не знаю что сказать О чем Вы??? Хоть что-то покажите из своего кода, чтоб можно было понять о чем речь? Как можно что-то ответить, не имея понятия о том, что в этом деструкторе и что вызывает deadlock? А вы точно правильно понимаете значение термина deadlock? Это сообщение отредактировал(а) azesmcar - 30.9.2010, 10:18 |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 12 Всего: 459 |
EgorTheBlade, дедлоки чаще всего причина излишних блокировок. Я борюсь с ними обычно так (где это возможно разумеется),
1) захват ресурса - копирование данных - отпускаю ресурс 2) Работа с копией 3) захват ресурса - сохранение изменений из копии - отпускаю ресурс. Разумеется у этой схемы есть свои ограничения при работе с несколькими ресурсами. Но все же. Проблема часто появляется когда мы пытаемся захватить другой ресурс которым владеет другой поток ждущий наш, а свой ресурс мы еще не отпустили. Если же скопировать данные и отпустить ресурс, то поток который владеет нужным нам ресурсом сможет завершить свою операцию и даст нам воспользоваться ресурсом который он занимал. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| EgorTheBlade |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 5.12.2009 Репутация: нет Всего: -1 |
В запуске release сервера работующего с 2мя потоками один main второй обычный.Возникает dead lock.В каком потоке -сказать трудно.Проблема исчезла при закомменчивании деструктора
Я не знаю почему так происходит.Одна из версий неправильное исп. ресурсов в потоках Alexeis, спасибо, вы правы в проекте много критических секции-займусь этой версией. Это сообщение отредактировал(а) EgorTheBlade - 30.9.2010, 10:48 |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Если закомментарить деструктор то компилятор сгенерирует его сам, в данном случае сгенерированный будет НЕ виртуальным, а значит при удалении через базовый класс деструктор реального объекта вызван не будет, а значит потоки, которые ждут разблокирования некоторых объектов деструктором не дождуться и может произойти deadlock. Но поскольку о конкретной ситуации мне абсолютно ничего не известно - это единственное, что я могу угадать в режиме телепата. |
|||
|
||||
| EgorTheBlade |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 5.12.2009 Репутация: нет Всего: -1 |
azesmcar, спасибо, есть пища для размышлений.Так скорее всего и происходит.
Это сообщение отредактировал(а) EgorTheBlade - 30.9.2010, 11:46 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |