Valgrind pthread_create困境

时间:2012-04-01 03:14:14

标签: c

在使用我的可执行文件运行valgrind --leak_check=yes时,我收到以下错误。

==17325== 136 bytes in 1 blocks are possibly lost in loss record 17 of 21
==17325==    at 0x4004C42: calloc (vg_replace_malloc.c:418)
==17325==    by 0xCC5CA9: _dl_allocate_tls (in /lib/ld-2.5.so)
==17325==    by 0xD0BF5C: pthread_create@@GLIBC_2.1 (in /lib/libpthread-2.5.so)
==17325==    by 0x8049334: init (prog.c:238)
==17325==    by 0x804C94F: main (prog.c:163)

它指向我的pthread_create调用。我在创建线程后调用了pthread_detach。我不想打电话给pthread_join。我搜索了这个,发现许多人面临同样的问题,但我找不到确切的原因。这是因为pthread库的行为吗?有人可以提供谈论这个问题的良好链接。

1 个答案:

答案 0 :(得分:2)

在分离的线程上调用pthread_join是非法的。如果您想加入它,请不要分离线程。