Ребят, убиваю тред с другого треда такой командой
if(pthread_kill(Ox496, SIGUSR1) == 0)Ox497 = 0;
Все отлично работало, но недавно начал замечать что в логах есть предупреждения "W/libc: invalid pthread_t (0) passed to pthread_kill", а сейчас уже и падения
A/libc: invalid pthread_t 0x71fc4e5d50 passed to pthread_join A/libc: Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 29192.
В исходниках нашел причину, последний абзац.
https://github.com/aosp-mirror/platform_bionic/blob/master/libc/bionic/pthread_internal.cpp#L129 Если проверять pthread_t существует ли он, то это просто указатель, поэтому null он не вернет. Вопрос, как правильно завершать pthread_t из другого треда?