Pessoal, estou fazendo um programa que utiliza a biblioteca pthreads.h, mas estou tendo um problema sério. Depois de resolver todos os erros, meu programa compila, executa a função main sem problemas. O problema tá na função pthread_create. Eu chamo ela, passando a função func, a pthread_create retorna zero, mas não executa a função func. Quando executo o programa, ele imprime "Criou thread!", mas não imprime "Entrou func!"... Alguém tem alguma idéia do por que isso está acontecendo???
Pergunta
bigorna00
Pessoal, estou fazendo um programa que utiliza a biblioteca pthreads.h, mas estou tendo um problema sério. Depois de resolver todos os erros, meu programa compila, executa a função main sem problemas. O problema tá na função pthread_create. Eu chamo ela, passando a função func, a pthread_create retorna zero, mas não executa a função func. Quando executo o programa, ele imprime "Criou thread!", mas não imprime "Entrou func!"... Alguém tem alguma idéia do por que isso está acontecendo???
Aí está o main:
#include <stdio.h> #include <stdlib.h> #include <pthread.h> #include "logica.h" #include "io.h" int main(int argc, char *argv[]){ ... ... Parametro *arg; arg->c_elevador = c_elevador; arg->elevador = elevador; arg->eventos = eventos; arg->in = in; pthread_t tid; error = pthread_create(&tid, NULL, func, arg); if (error){ printf("Erro ao criar a thread\n"); } else{ printf("Criou thread!\n"); } return(0); }E aí está a função func:void* func (void *arg){ printf("Entrou func!\n"); long double out = 0; movimenta(&(arg->c_elevador), &(arg->elevador), &(arg->eventos), &out); printf("movimentou!\n"); pthread_exit(NULL); printf("destruiu thread!\n"); }Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.