как освободить память, выделенную g_thread_init - PullRequest
2 голосов
/ 09 декабря 2011

Хотелось бы узнать, возможно ли освободить память, выделенную 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 Ответ

2 голосов
/ 09 декабря 2011

g_thread_init() - это функция однократного выполнения, которая настраивает поддержку многопоточности в GLib.Память, которую он выделяет, никогда не освобождается.

В более новых версиях GLib (> = 2.32) g_thread_init() фактически не используется, и вам вообще не нужно вызывать его -настройка многопоточности выполняется автоматически при запуске вашей программы.

Итак, ответ на ваш вопрос: вы не можете и не должны пытаться.

...