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

 
 
> Корректное завершение потока (pthread, Linux)
Kirill_Good
сообщение Jun 15 2013, 09:58
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 10-12-10
Из: Москва
Пользователь №: 61 528



Добрый день!

Не подскажите с реализациями завершения потоков? Как обработать такую ситуацию : дочерний поток висит на вызове блокируемой функции из third-party библиотеки. Родительский поток хочет его завершить. Как сделать? Учитывать корректное освобождение ресурсов.

Api: pthread, система: Linux

Спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
alx.bilous
сообщение Jun 21 2013, 08:48
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 18-03-12
Пользователь №: 70 865



Цитата
Не подскажите с реализациями завершения потоков? Как обработать такую ситуацию : дочерний поток висит на вызове блокируемой функции из third-party библиотеки. Родительский поток хочет его завершить. Как сделать? Учитывать корректное освобождение ресурсов.


Вы можете просто убить поток, а освободить ресурсы в том месте где убили, но для этого надо иметь явный контекст потока
Go to the top of the page
 
+Quote Post
Kirill_Good
сообщение Jun 21 2013, 08:57
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 10-12-10
Из: Москва
Пользователь №: 61 528



Цитата(alx.bilous @ Jun 21 2013, 12:48) *
Вы можете просто убить поток, а освободить ресурсы в том месте где убили, но для этого надо иметь явный контекст потока

а не будет ли это одно и тоже, что и освободить ресурсы в обработчиках при завершении? Явный контекст потока , вы имели ввиду, что ясно представлять код?

Вроде как напрашивается только одно решение: делать код потока неблокируемым.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Jun 22 2013, 19:05
Сообщение #4


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(Kirill_Good @ Jun 21 2013, 12:57) *
...Вроде как напрашивается только одно решение: делать код потока неблокируемым.


будет всё левак. самое грамотное - в сторонней библиотеке должна быть функция старта-останова стороннего потока. всё остальное - хождение по тонкому льду. шаг влево или вправо (не обязательно вы и не обязательно в ближайшем будущем) и кирдык всей конструкции.
Go to the top of the page
 
+Quote Post
Kirill_Good
сообщение Jun 23 2013, 05:39
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 10-12-10
Из: Москва
Пользователь №: 61 528



Цитата(kolobok0 @ Jun 22 2013, 23:05) *
в сторонней библиотеке должна быть функция старта-останова стороннего потока.


а есть пример какой-нибудь?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Kirill_Good   Корректное завершение потока (pthread, Linux)   Jun 15 2013, 09:58
- - alx2   Цитата(Kirill_Good @ Jun 15 2013, 14:58) ...   Jun 18 2013, 03:47
|- - Kirill_Good   Цитата(alx2 @ Jun 18 2013, 07:47) Нет, я ...   Jun 18 2013, 06:21
|- - alx2   Цитата(Kirill_Good @ Jun 18 2013, 11:21) ...   Jun 19 2013, 06:31
|- - kolobok0   Цитата(Kirill_Good @ Jun 23 2013, 09:39) ...   Jun 25 2013, 13:14
|- - Kirill_Good   Цитата(kolobok0 @ Jun 25 2013, 17:14) при...   Jun 25 2013, 13:31
|- - kolobok0   Цитата(Kirill_Good @ Jun 25 2013, 17:31) ...   Jul 8 2013, 10:44
|- - Kirill_Good   Давайте я расскажу ход моих мыслей, когда я читал ...   Jul 8 2013, 11:05
|- - kolobok0   Цитата(Kirill_Good @ Jul 8 2013, 15:05) ....   Aug 2 2013, 15:43
- - firew0rker   В дочернем потоке вызвать pthread_setcanceltype(P...   Jul 8 2013, 11:08
|- - Kirill_Good   Цитата(firew0rker @ Jul 8 2013, 15:08) В ...   Jul 8 2013, 11:11
|- - firew0rker   Цитата(Kirill_Good @ Jul 8 2013, 17:11) а...   Jul 8 2013, 12:17
|- - Kirill_Good   Цитата(firew0rker @ Jul 8 2013, 16:17) За...   Jul 8 2013, 12:39
|- - firew0rker   Цитата(Kirill_Good @ Jul 8 2013, 19:39) П...   Jul 8 2013, 14:53
- - Kirill_Good   я пожалуй вежливо промолчу)   Aug 2 2013, 16:33


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 19:32
Рейтинг@Mail.ru


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