Завершение потока с помощью pthread_exit с последующим возвратом - странный пример
Я нашел этот пример; здесь два потока threadDefault и threadCustomized завершаются использованием pthread_exit с последующим возвратом. Почему автор написал обе инструкции?
2 ответа
Ответ Мохита Редди правильный, но упускает из виду суть. Конечно, оператор return никогда не выполняется, так какpthread_exit
не возвращается, но он предназначен для подавления предупреждений от компилятора, если он не знает, что pthread_exit
не возвращается.
Из pthread_exit()
страница руководства:
ВОЗВРАТНАЯ СТОИМОСТЬ
Эта функция не возвращается к вызывающему.
ОШИБКИ
Эта функция всегда успешна.
ЗАМЕТКИ
Выполнение возврата из функции запуска любого потока, кроме основного, приводит к неявному вызову
pthread_exit()
, используя возвращаемое значение функции как статус выхода потока.
Все вышесказанное предполагает, что pthread_exit();
а также return NULL;
избыточны, когда оба вызываются вместе.