如何释放g_thread_init分配的内存

时间:2011-12-09 11:30:58

标签: c multithreading memory-leaks free glib

我想知道是否可以释放分配的内存 g_thread_init(NULL)

这是我的代码:

int main(void)
{    
g_thread_init(NULL);            
g_thread_exit(NULL); 
}

和valgrind输出:

==1944== HEAP SUMMARY:
==1944==     in use at exit: 8,910 bytes in 119 blocks
==1944==   total heap usage: 159 allocs, 40 frees, 15,033 bytes allocated

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

g_thread_init()是一个运行一次的函数,它为GLib中的多线程支持进行设置。它分配的内存永远不会被释放。

在较新版本的GLib(> = 2.32)中,g_thread_init()实际上是无操作,您根本不需要调用它 - 所有多线程设置都是在您自动完成时自动完成的程序开始。

所以你的问题的答案是:你不能,你不应该尝试。