Всем доброго дня!
Обнаружил, что течет память при завершении потоков:
Далаем вот такой простой тест:
>>>>>>>>
#include <stdio.h>
#include <pthread.h>
void *thread( void* in )
{
printf( "I'm running thread\n" );
return NULL;
}
int main( void )
{
pthread_t tid, tid2;
pthread_create( &tid, NULL, &thread, NULL );
pthread_create( &tid2, NULL, &thread, NULL );
/* wait until complete */
pthread_join( tid, NULL );
pthread_join( tid2, NULL );
return 0;
}
<<<<<<<<
собранный: gcc test.c -o test -lpthread
и запущеный через valgrind --tool=memcheck -v --leak-check=yes --show-reachable=yes --leak-resolution=high
показывает потерю 136 байт (68 на поток). По стеку видно, что
теряется TLS.
Кто-нибудь сталкивался с этим? Является ли это багом libc или я не
так завершаю поток?
libc: 2.3.6(fedora core 5), 2.3.5(ubuntu breezy)
P.S.
Если завершать через pthread_exit - потерей будет существенно больше :(.
Ответ на:
комментарий
от fghj
Ответ на:
комментарий
от fghj
Ответ на:
комментарий
от fghj
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от romanSA
Ответ на:
комментарий
от jr_A
Ответ на:
комментарий
от fghj
Ответ на:
комментарий
от fghj
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Posix Threads (2005)
- Форум Завершение потока: остается занятая память. (2009)
- Форум pthread_create виснет в дочернем процессе. Помогите! (2002)
- Форум pthreads - ошибка линковки (2001)
- Форум pthread_create и прочий бред. (2004)
- Форум Убить поток (2002)
- Форум Реализовать последовательно-параллельный запуск потоков (2017)
- Форум pthread_detach (2005)
- Форум pthread (2003)
- Форум создание потока (2003)