3 votes

pthread_created suivi de pthread_join valgrind perte possible c

J'ai un problème avec les erreurs de valgrind concernant la perte de mémoire. Voici mon code :

if((err = pthread_create(&handlert, NULL, &handler, NULL)) != 0) perror(..)

if((err = pthread_create(&mastert , NULL, &createmaster, NULL)) != 0) perror(..)

for(int i = 0; i < THREADSINPOOL; i++) {
    if((err = pthread_create(&(f[i]), NULL, &createpool, NULL)) != 0) perror(..)
}

if((err = pthread_join(handlert,(void*) &sRet[1])) != 0) perror(..)

if((err = pthread_join(mastert,(void*) &lRet[1])) != 0) perror(..)

for(int i = 0; i < THREADSINPOOL; i++) {
    if((err = pthread_join(f[i], (void*) &wRet[i])) != 0) perror(..)
}
return 0;

J'ai un joint pour chaque fil et je vérifie le résultat mais valgrind dit toujours :

==21610== 560 bytes in 1 blocks are possibly lost in loss record 8 of 12
==21610==    at 0x4C2CC90: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==21610==    by 0x4012E44: allocate_dtv (dl-tls.c:296)
==21610==    by 0x4012E44: _dl_allocate_tls (dl-tls.c:460)
==21610==    by 0x4E3FCC0: allocate_stack (allocatestack.c:589)
==21610==    by 0x4E3FCC0: pthread_create@@GLIBC_2.2.5 (pthread_create.c:495)
==21610==    by 0x401B3B: main (myfile.c:85)

(Même erreur pour chaque création de pthread, en changeant seulement la ligne du code) Merci d'avance !

EDIT : flags dans la compilation : --leak-check=full -std=c99 -Wall -pedantic -g -DMAKE_VALGRIND_HAPPY Il n'y a que cette erreur (qui ne ressemble pas à une conséquence des erreurs précédentes)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X