6 / 6 / 1
Регистрация: 01.12.2010
Сообщений: 105
|
|
1 | |
Можно ли убить поток (pthread) сигналом (kill()) ?10.06.2011, 13:29. Показов 11005. Ответов 4
Метки нет (Все метки)
Процесс убивается вызовом kill(pid, 9);
Как убить не весь процесс а только поток? Можно pthread_cancel + pthread_testcancel, но это не принудительное завершение, а надо именно принудительное.
0
|
10.06.2011, 13:29 | |
Ответы с готовыми решениями:
4
Как узнать, что поток закончился (библиотека pthread)? Корректно убить поток Можно ли убить поток зная лишь то что он запускается последним? Pthread взывать поток без параметров |
6 / 6 / 1
Регистрация: 01.12.2010
Сообщений: 105
|
|
10.06.2011, 14:27 [ТС] | 3 |
Спасибо.
P.S. Как же ж стыдно.
0
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
10.06.2011, 16:31 | 4 |
А мне вот кажется, что лучше такого не делать в принципе.
Ведь в обработчике сигнала придется освобождать все ресурсы нити (память в том или ином виде, всевозможные дескрипторы, отпускать мьтексы и тд и тп) и думается, что сделать это малой кровью (pthread_cleunup_*) не выйдет (а вдруг сигнал прилетит между malloc/new и pthread_cleanup_push). В итоге получится велосипед похожий на pthread_cancel, но скорее всего с квадратными колесами.
1
|
6 / 6 / 1
Регистрация: 01.12.2010
Сообщений: 105
|
|
13.06.2011, 16:47 [ТС] | 5 |
А у меня все ходы записаны
Поток, который выделяет ресы завершается по-человечески - через pthread_cancel, а вот в этом потоке создаётся ещё один поток и в нём вызываются методы из либы, которая юзает выделенные ресурсы и 100% не выделяет ничего сама, а т.к. либа писалась не известно кем - нет никакой уверенности в том, что она вообще отдаст управление, поэтому, насколько я вижу pthread_kill - единственный вариант.
0
|
13.06.2011, 16:47 | |
13.06.2011, 16:47 | |
Помогаю со студенческими работами здесь
5
Pthread, поток, передающий значение по указателю "Убить" процесс ( kill и killall ) Убить поток в адаптере убить поток + datagrid Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |