|
1 / 1 / 1
Регистрация: 30.04.2010
Сообщений: 17
|
|
Убить thread, вызвавший ошибку26.10.2011, 09:47. Показов 1841. Ответов 16
Метки нет (Все метки)
Всем привет!
Есть ли способ убить thread, вызвавший FloatingPointException в multi-thread проекте, не убивая всю application ?
0
|
|
| 26.10.2011, 09:47 | |
|
Ответы с готовыми решениями:
16
Почему когда фоновый thread "спит" я не могу убить main thread ? Как убить std::thread? Как убить ошибку |
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 26.10.2011, 10:20 | |
|
Не понятно речь идет об пристрелить из самого приложения или из вне?
0
|
|
|
1 / 1 / 1
Регистрация: 30.04.2010
Сообщений: 17
|
||
| 26.10.2011, 10:28 [ТС] | ||
|
В процессе выполнения приложения в одном из handler_thread возникает исключение типа SIGSEGV или SIGFPE. Нужно, чтобы эта нитка или сама себя кокнула или main_thread ее замочила (что еще лучше). Есть мнение, что сделать этого нельзя - прочел на одно из буржуйских форумов мнение прогера из Дели.
0
|
||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 26.10.2011, 10:35 | |
|
От чего нельзя то?
Делаете в этой нити обработчик соответствующего сигнала, который корректно освободит все ресурсы нити (например память, мьтексы и тп) и завершит нить. Перед выходом можно сигнализировать в main - я сдох, перезапусти.
0
|
|
|
1 / 1 / 1
Регистрация: 30.04.2010
Сообщений: 17
|
||
| 26.10.2011, 10:39 [ТС] | ||
|
может подсобите куском правильного кода или ссылочкой ?
0
|
||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
||||||
| 26.10.2011, 11:25 | ||||||
|
Не готовым не поделюсь.
Имхо достаточно:
0
|
||||||
|
1 / 1 / 1
Регистрация: 30.04.2010
Сообщений: 17
|
|
| 26.10.2011, 11:32 [ТС] | |
|
0
|
|
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 26.10.2011, 11:35 | |
|
Так уневерсального готового решения на все случаии жизни и быть не может.
А тот же pthread_exit(0) в обработчике завершит только нужную нить. Чем не устраивает?
0
|
|
|
1 / 1 / 1
Регистрация: 30.04.2010
Сообщений: 17
|
||
| 26.10.2011, 11:40 [ТС] | ||
|
чуть выше я написал, что после вызова pthread_exit() в сбойной нитке весь процесс завершается с сообщением "Аварийный останов" (то есть вероятно вызовом abort()) проблема в этом
0
|
||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 26.10.2011, 11:42 | |
|
Тогда Вам нужно искать кто делает это abort() или тупо ловить SIGABRT
0
|
|
|
1 / 1 / 1
Регистрация: 30.04.2010
Сообщений: 17
|
|
| 26.10.2011, 11:56 [ТС] | |
|
0
|
|
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
||||||
| 26.10.2011, 13:10 | ||||||
|
Вы всетаки определитесь по какому сигналу дохнет ваш код (man wait например) и обрабатывайте его.
Добавлено через 1 час 0 минут Во, накорябал кривенький пример ловли abort().
1
|
||||||
|
1 / 1 / 1
Регистрация: 30.04.2010
Сообщений: 17
|
|
| 26.10.2011, 13:15 [ТС] | |
|
0
|
|
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 26.10.2011, 13:18 | |
|
0
|
|
|
1 / 1 / 1
Регистрация: 30.04.2010
Сообщений: 17
|
||
| 26.10.2011, 13:25 [ТС] | ||
|
в моем случае bad_thread находится в суспенде в мутексе. поэтому нет возможности проанализировать сигнал, если он возник. в sighandler делаю backtrace (для разбора полетов), а затем вызываю pthread_exit. как мне кажется, вполне рабочий метод, поскольку в bad_thread нет неавтоматических переменных - память не нужно освобождать вручную.
0
|
||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 26.10.2011, 13:33 | |
|
Ясно) А я по предыдущим постам почему то решил, что pthread_exit() Вам не приемлем, и удивился как еще можно не завершать обработчик сигнала.
0
|
|
|
1 / 1 / 1
Регистрация: 30.04.2010
Сообщений: 17
|
||
| 26.10.2011, 13:38 [ТС] | ||
|
Спасибо за помощь. Хотя и сам пришел к этому решению, но уверен, что не без вашей помощи. Что еще раз доказывает, что Мысль материальна
0
|
||
| 26.10.2011, 13:38 | |
|
Помогаю со студенческими работами здесь
17
Ссылка на объект, вызвавший событие
Сессию нужно убить memberid нужно принудительно убить и страницы... как ? Непонятки в Java. Chain method call. Thread.start() vs Thread.run() Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|