использование pthread_join - PullRequest
       4

использование pthread_join

2 голосов
/ 29 марта 2011

Что произойдет, если я позвоню pthread_join (NULL)?

Ответы [ 3 ]

10 голосов
/ 29 марта 2011

вы получаете ошибку времени компиляции; pthread_join() ожидает 2 аргумента:)

3 голосов
/ 29 марта 2011

Если первый из двух ожидаемых аргументов pthread_join () имеет значение NULL, во время выполнения может произойти что угодно (плохое). Из спецификации на www.opengroup.org: " Поведение не определено , если значение, указанное в аргументе потока для pthread_join (), не ссылается на присоединяемый поток."

Для второго аргумента pthread_join () принимается NULL.

РЕДАКТИРОВАТЬ: Действительно, некоторые реализации могут указывать поведение. Проверьте страницу руководства для pthread_join в вашей системе.

0 голосов
/ 29 марта 2011

В идеале вы должны всегда проверять возвращаемую функцию :

if (0 != pthread_join(thread, &result)) 
{
   fprintf(stderr, "pthread_join error\n");
}

В случае успеха функция pthread_join () возвращает ноль.В противном случае возвращается номер ошибки, чтобы указать на ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...