Как я могу убить pthread, который находится в бесконечном цикле, вне этого цикла?

Я создаю поток и помещаю его в бесконечный цикл. Утечки памяти при проверке кода сValgrind, Вот мой код:

#include <pthread.h>
#include <time.h>

void thread_do(void){
    while(1){}
}

int main(){
    pthread_t th;   
    pthread_create(&th, NULL, (void *)thread_do, NULL);

    sleep(2);
    /* I want to kill thread here */
    sleep(2);
    return 0;
}

Таким образом, поток создается в main и просто запускает thread_do () все время. Есть ли способ убить его изнутриглавный через 2 секунды? Я пробовал обаpthread_detach(th) а такжеpthread_cancel(th) но я все еще получаю утечки.

Ответы на вопрос(2)

Ваш ответ на вопрос