pthread_kill (0,0) falha

0

Esta é a minha primeira pergunta aqui (como você provavelmente pode dizer da má formatação da saída do GDB abaixo: ^}, e este pode não ser o fórum correto ?? ...

Usando o Ubuntu 14.04, chamar pthread_kill (0,0) causa um SIGSEGV. A man page diz que pthread_kill () pode ser usado para determinar se existe um thread. Eu devo estar perdendo algo extremamente básico. Eu entendo que a definição / formato / estrutura real de pthread_t é opaca (dependente do sistema operacional), mas parece que isso deve funcionar e, na pior das hipóteses, retornar ESRCH. Por favor, me endireite. Detalhes seguem:

int
main (int arcg, char *argv[])   
{
    pthread_kill((pthread_t)0,0);
    return 0;
}

gcc -g -pthread test_pthread_kill.c -otest_pthread_kill

test_pthread_kill

Segmentation fault (core dumped)
    
por Eric Buell 13.08.2015 / 00:03

1 resposta

0

use pthread_create(&tid,...) , então você receberá um valor legal pthread_t para passar. Ou use seu próprio tid:

pthread_kill(pthread_self(),0);
    
por meuh 13.08.2015 / 12:44