LINUX.ORG.RU

Pthread_cleanup


0

0

Здравствуйте. Меня интересует следующий вопрос: "pthread_cleanup_pop, который вызывается при закрпытии потока, вызывается после закрытия потока или до?"
П.С. заранее спасибо.

> Если вызов pthread_exit() расположен до вызовов pthread_cleanup_pop(), поток завершится до обращения к коду макросов, при этом все обработчики завершения потока будут вызваны функцией pthread_exit(). Если мы расположим вызов pthread_exit() после вызовов pthread_cleanup_pop(), обработчики завершения будут выполнены до вызова pthread_exit(), и этой функции останется только завершить работу потока, не вызывая никаких обработчиков. А нужно ли вообще вызывать pthread_exit() в конце функции потока, если вызовы макросов pthread_cleanup_pop() все равно необходимы? Ответ на этот вопрос зависит от обстоятельств. Помимо вызова обработчиков завершения потока, функция pthread_exit() может выполнять в вашем потоке и другие важные действия, и в этом случае ее вызов необходим.

samson ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.