c - Valgrind pthread_create 问题

标签 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 库的行为吗?有人可以提供讨论这个问题的好链接吗?

最佳答案

在分离的线程上调用 pthread_join 是非法的。如果您希望能够加入线程,请不要分离线程。

关于c - Valgrind pthread_create 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9961606/

相关文章:

c++ - 设置 C/C++ 构建配置在点击确定后恢复为默认值

C函数指针转换为另一个函数指针

c - GNU 内置函数有哪些?

c - 尝试避免在没有 pimpl 的情况下在 header 中显示私有(private)属性

c - 通过引用数组

c - 使用 strftime 时调试断言失败

c - 边的链接列表

c - 在一行中写多个简洁的语句是一种好习惯吗?

c - 指针操作、内存扫描

android - 在Android NDK上编译并运行动态创建C程序