• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

SunShade

threads em C

1 mensagem neste tópico

Bons dias pessoal ! eu tou aqui com um pequeno problema. Eu tenho uma aplicaçao cliente/servidor funcionando com threads.Tive a correr o valgrind para debug e o gajo da me estes erros quando a thread e parada por ctrl +C :

Thread 2:

==14133== Invalid read of size 4

==14133==    at 0x80489EF: message_buffer (server)

==14133==    by 0x8049CD0: message_network (server)

==14133==    by 0x804A2CC: handleClient (server)  -> funçao worker

==14133==    by 0x77C44A: start_thread (in /lib/libpthread-2.6.so)

==14133==    by 0x60980D: clone (in /lib/libc-2.6.so)

==14133==  Address 0x4 is not stack'd, malloc'd or (recently) free'd

==14133==

==14133== Process terminating with default action of signal 11 (SIGSEGV)

==14133==  Access not within mapped region at address 0x4

==14133==    at 0x80489EF: message_buffer (server)

==14133==    by 0x8049CD0: message_network (server) -> trata das coneçoes

==14133==    by 0x804A2CC: handleClient (server)

==14133==    by 0x77C44A: start_thread (in /lib/libpthread-2.6.so)

==14133==    by 0x60980D: clone (in /lib/libc-2.6.so)

isto acontece quando eu fecho o servidor com ctrl + c mas msm assim eu ja trato dos sinais de encerramento. tenho uma funçao para tratamento dos sinais!Axo que isto tem haver com o encerramento da thread espontaneamente. Experimentei fzr o pthread_detach na função d encerramento por ctrl +c mas ele da m estes erros a msm!alguem me pode dar umas ideias.

thks  =)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora