Форум программистов, компьютерный форум CyberForum.ru

Как узнать, что поток закончился (библиотека pthread)? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Почему код, написанный на С++, в разы быстрее работает с большим объемом памяти, чем с маленьким? http://www.cyberforum.ru/cpp/thread442175.html
Привет! Понадобилось мне сравнить скорость работы идентичных алгоритмов на Fortran и C++. Алгоритм - перемножение матриц. Решил поэкспериментировать с матрицами разных размеров. Вот результаты ________________________C++____________Fortran Матрицы100*100 (~80 КБ) 10000 перемножений______10,96 сек________10,97 сек Матрицы 365*365 (~1МБ) 200 перемножений_________10,26 сек_______12,56 сек
C++ шаблонные методы шаблона. Специализация. Вопрос: каким образом можно вынести реализацию методов класса за его пределы? Изначально вопрос формулировался так: Каким образом можно произвести специализацию одного из методов шаблона класса так, что бы эта специализация зависела только от одного (или нескольких) параметров шаблона, но не от всех? Другими словами, как можно частично специализировать отдельно взятый метод шаблона так, что... http://www.cyberforum.ru/cpp/thread442155.html
С++ Unit Test (модульное тестирование) C++
Вопроса по сути два. 1. что используете для модульного тестирования и почему отдаете этому предпочтение. 2. если используете eclipse, то очень интересует процесс конфигурирования eclipse для работы с фрэймворком тестирования. Почему задаю вопрос... Гуглю неделю на предмет поиска данной инфорации. И прихожу в недоумение от того что 90% статей которые удалось найти не моложе 2010 года.. Как...
Сетевой график C++
ПОжалуйста помогите создать программу Задачи работы: - построение сетевого графика; - анализ сетевого графика; -оптимизация сетевого графика. p.s. сижу с сотки, интернет отключен программа не работает(((( если вам не тяжело можете сразу закинть программу ехе , буду вам очень признателен!!!
C++ PopCap Games Framework 1.3 http://www.cyberforum.ru/cpp/thread440526.html
У кого есть ссылка на PopCap Games Framework 1.3 скиньте плииз! С сайта sourceforge.net никак не качается... Форум не место обмена ссылками!
C++ Необычная Dll Есть ли способ написать DLL, в которой есть функция и через неё будут проходить вызовы экспортируемых функций? Например в DLL нет функции Func, и тогда, по-умолчанию вызывается функция Default? подробнее

Показать сообщение отдельно
retmas
Жарю без масла
824 / 706 / 151
Регистрация: 13.01.2012
Сообщений: 1,617
07.02.2012, 23:08     Как узнать, что поток закончился (библиотека pthread)?
Цитата Сообщение от retmas Посмотреть сообщение
Цитата Сообщение от retmas Посмотреть сообщение
баг?/несоответствие с POSIX?
скорее всего
http://liveworkspace.org/code/f8a02a...460a506d81a52a
pthread_join же не возвращает ESRCH
хотя может и не баг, а просто "зависит от реализации". решил тоже перечитать маны
The pthread_kill() function is used to request that a signal be delivered to the specified thread.
может ли сигнал быть delivered потоку-зомби?
и если все-таки зависит от раелизации, проверять завершение с помощью pthread_kill можно только для конкретной реализации, а значит непереносимо

Добавлено через 4 минуты
Цитата Сообщение от kravam Посмотреть сообщение
В цикле вызывать эту функцию и всё. Так что буду пробовать.
может проще сделать
Цитата Сообщение от retmas Посмотреть сообщение
топорно:
даешь мьютекс, блокируешь в потоке(в самом начале, а перед концом - освобождаешь), try_lock в мэйне
или что-то вроде этого?

Добавлено через 24 минуты
вот, что нашел в описании pthread_join
It is unspecified whether a thread that has exited but remains unjoined counts against {PTHREAD_THREADS_MAX}.
думаю, это значит также, что unspecified, валидный ли id потока-зомби и можно ли воздействовать на такой поток какими-либо ф-ми, кроме pthread_join.
могу ошибаться

Добавлено через 10 минут
нашел еще интересную вещь, правда про kill()
Existing implementations vary on the result of a kill() with pid indicating an inactive process (a terminated process that has not been waited for by its parent). Some indicate success on such a call (subject to permission checking), while others give an error of [ESRCH]. Since the definition of process lifetime in this volume of IEEE Std 1003.1-2001 covers inactive processes, the [ESRCH] error as described is inappropriate in this case. In particular, this means that an application cannot have a parent process check for termination of a particular child with kill().
но думаю здесь именно этот случай, поскольку про pthread_kill сказано
As in kill(), if sig is zero, error checking shall be performed but no signal shall actually be sent.
так что проверять, завершился ли поток с помощью pthread_kill - не верно

так что, kravam, ищите пути иные, чем pthread_kill
 
Текущее время: 08:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru