Из справочника: "g_thread_join () использует ссылку на переданный - в потоке. Это будет обычно заставлять структуру GThread и связанные ресурсы быть освобожденной".
Вызов 'g_thread_join' удаляет на 'gpointer, данные' передали 'g_thread_create/g_thread_new'? Или руководство просто говорит об освобождении 4 или 8 байтов, которые занимает сам gpointer?
Это дает ключ к разгадке:
Это будет обычно заставлять структуру GThread и связанные ресурсы быть освобожденной.
Из руководства (g_thread_join()
):
Использовать
g_thread_ref()
получить дополнительную ссылку, если Вы хотите поддержать GThread внеg_thread_join()
звонить.
Это означает, что поток уничтожается, если (и это не объясняет "обычно"), Вы сохраняете ссылку на него перед вызовом.