Завершение потока: остается занятая память.
Добрый день!
Подскажите, пожалуйста, почему в нижеприведенном примере
после завершения потока остается занятая память?
m0 == 0
m1 == 144
С уважением.
#include <stdio.h>
#include <pthread.h>
#include <errno.h>
#include <malloc.h>
static void * threadfunc( void * prm )
{
// pthread_detach( pthread_self() );
sleep(1);
return NULL;
}
int main( int argc, char **argv )
{
int rc, m0, m1;
void * t_rc;
pthread_t thread;
struct mallinfo mi;
mi = mallinfo(); m0 = mi.uordblks;
printf( "m0 == %d\n", m0 );
if( 0 != (rc = pthread_create( &thread, NULL, threadfunc, NULL ) )) {
printf( "pthread_create: %s\n", strerror( rc ) );
thread = 0;
}
if( thread ) {
if( 0 != (rc = pthread_join( thread, NULL ))) {
printf( "pthread_join: %s\n", strerror( rc ) );
}
}
mi = mallinfo(); m1 = mi.uordblks;
printf( "m1 == %d\n", m1 );
return 0;
}