Распараллельте ID от не пройдено создания потока, используемого в последующих функциях потока
Этот дефект происходит, когда создание потока функционирует, такие как pthread_create
сбои, но вы продолжаете использовать ID от создания потока.
Например, pthread_join
использует неопределенный ID потока после того, как создание предыдущего сообщения перестало работать. Ненулевое возвращаемое значение от pthread_create
указывает на не пройдено создание потока.
pthread_t id; if(0! = pthread_create(&id, attr, start_func, NULL)) { ... phread_join(id, NULL); ... }
pthread_create
.Согласно стандарту POSIX®, если создание потока перестало работать, содержимое ID потока не определено. Использование неопределенного ID потока может привести к непредсказуемым результатам.
Проблема часто указывает на программную ошибку. Например, возможно, что вы протестировали на ненулевые значения, чтобы определить успешное создание потока:
if(0 != pthread_create(&id, attr, start_func, NULL))
if(0 == pthread_create(&id, attr, start_func, NULL))
Если использование неопределенного ID потока прибывает из программной ошибки, зафиксируйте ошибку. В противном случае удалите функции потока, которые используют неопределенный ID.
Группа: параллелизм |
Язык: C |
Значение по умолчанию: 'off' |
Синтаксис командной строки:
UNDEFINED_THREAD_ID |
Удар: носитель |
Join or detach of a joined or detached thread
| Missing or double initialization of thread attribute