Завершение потока с помощью pthread_exit с последующим возвратом - странный пример

Я нашел этот пример; здесь два потока threadDefault и threadCustomized завершаются использованием pthread_exit с последующим возвратом. Почему автор написал обе инструкции?

2 ответа

Решение

Ответ Мохита Редди правильный, но упускает из виду суть. Конечно, оператор return никогда не выполняется, так какpthread_exit не возвращается, но он предназначен для подавления предупреждений от компилятора, если он не знает, что pthread_exit не возвращается.

Из pthread_exit() страница руководства:

ВОЗВРАТНАЯ СТОИМОСТЬ

Эта функция не возвращается к вызывающему.

ОШИБКИ

Эта функция всегда успешна.

ЗАМЕТКИ

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

Все вышесказанное предполагает, что pthread_exit(); а также return NULL; избыточны, когда оба вызываются вместе.

Другие вопросы по тегам