05-07-2009
Memory LEAK with pthreads
I have this code...
#include <stdio.h>
#include <iostream>
#include <pthread.h>
static void* cliente(void *datos);
int main()
{
pthread_attr_t tattr;
int ret;
size_t size = PTHREAD_STACK_MIN + 0x0100;
ret = pthread_attr_init(&tattr);
ret = pthread_attr_setstacksize(&tattr, size);
ret= pthread_attr_setdetachstate(&tattr,PTHREAD_CREATE_JOINABLE);
ret=0;
pthread_t mythread[401];
while(ret<400)
{
int error=pthread_create((pthread_t *)&mythread[ret],&tattr,cliente,NULL);
if(error==0)pthread_detach((pthread_t)mythread);
ret++;
}
while(true)
{}
}
static void* cliente(void *datos)
{
char *buff=(char *)malloc(100000);
sleep(15);
free(buff);
buff=NULL;
pthread_exit(NULL);
}
When the code finishes I can observe that the virtual memory(report) in the creation of the threads is not liberated after doing a detach, even the memory(report) reserved also...
any body knows this problem???
TIA
9 More Discussions You Might Find Interesting
1. Programming
Hi,
First of all I appreciate this group very much for its informative discussions and posts.
Here is my question.
I have one process whose virtual memory size increases linearly from 6MB to 12MB in 20 minutes. Does that mean my process has memory leaks?
In what cases does the... (4 Replies)
Discussion started by: shriashishpatil
4 Replies
2. Programming
Hi, i have this code... in order to test my problem...
#include <stdio.h>
#include <iostream>
#include <pthread.h>
static void* cliente(void *datos);
int main()
{
pthread_attr_t tattr;
int ret;
size_t size = PTHREAD_STACK_MIN + 0x0100;
ret =... (8 Replies)
Discussion started by: JEscola
8 Replies
3. UNIX for Advanced & Expert Users
I tried to execute a sample pthread program to cancel a newly created one using pthread_cancel(). but using valgrind on my code shows some memory leak.
My Code:
#include "iostream"
#include "unistd.h"
#include "pthread.h"
#include "signal.h"
using namespace std;
void handler(int);
void*... (4 Replies)
Discussion started by: kcr
4 Replies
4. UNIX for Advanced & Expert Users
Hi.
This might be a strange request, but does anyone have any idea on a simple shell script that would use more and more memory as it ran? Like a purposeful leak.
I want to test the behaviour of an already running program when the machine runs out of memory.
Thanks! (4 Replies)
Discussion started by: rebelbuttmunch
4 Replies
5. IP Networking
Hi All,
my client server application can work in two modes:
1) one direction - only client sends msgs to server
2) two directions - server gives 'answers' to client.
when program run in the first mode it looks OK, but when server answers to client than client's application exit its... (2 Replies)
Discussion started by: lenna
2 Replies
6. Programming
hi all
Can any one plz explain me about memory leak problem
Thankx (5 Replies)
Discussion started by: sonali
5 Replies
7. Programming
Hi,
I am trying a database server which keeps a B+ plus tree structure and works on it.
I am trying to find the memory used/leak while executing this process.
I check the memory leak by using ps uax command.
When i execute a delete query i am sure that my code frees up the existing... (9 Replies)
Discussion started by: kumaran_5555
9 Replies
8. Red Hat
Hi all
I am using RED HAT 5.4, and i am getting memory uses problem. when i use "sync;echo 3 > /proc/sys/vm/drop_cache" command the memory will release after 2,3 hour memory show 95%.
pls suggest right way.
thanks (37 Replies)
Discussion started by: reply.ravi
37 Replies
9. Programming
I have written this code in C which reads a very large collection of text files and does some processing. The problem with this code is that there are memory leaks which I am not able to figure out as to where the problem is. When I run this code, and see the memory usage using top command, then I... (7 Replies)
Discussion started by: shoaibjameel123
7 Replies
LEARN ABOUT LINUX
pthread_attr_setdetachstate
PTHREAD_ATTR_SETDETACHSTATE(3) Linux Programmer's Manual PTHREAD_ATTR_SETDETACHSTATE(3)
NAME
pthread_attr_setdetachstate, pthread_attr_getdetachstate - set/get detach state attribute in thread attributes object
SYNOPSIS
#include <pthread.h>
int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate);
int pthread_attr_getdetachstate(pthread_attr_t *attr, int *detachstate);
Compile and link with -pthread.
DESCRIPTION
The pthread_attr_setdetachstate() function sets the detach state attribute of the thread attributes object referred to by attr to the value
specified in detachstate. The detach state attribute determines whether a thread created using the thread attributes object attr will be
created in a joinable or a detached state.
The following values may be specified in detachstate:
PTHREAD_CREATE_DETACHED
Threads that are created using attr will be created in a detached state.
PTHREAD_CREATE_JOINABLE
Threads that are created using attr will be created in a joinable state.
The default setting of the detach state attribute in a newly initialized thread attributes object is PTHREAD_CREATE_JOINABLE.
The pthread_attr_getdetachstate() returns the detach state attribute of the thread attributes object attr in the buffer pointed to by
detachstate.
RETURN VALUE
On success, these functions return 0; on error, they return a nonzero error number.
ERRORS
pthread_attr_setdetachstate(3) can fail with the following error:
EINVAL An invalid value was specified in detachstate.
CONFORMING TO
POSIX.1-2001.
NOTES
See pthread_create(3) for more details on detached and joinable threads.
A thread that is created in a joinable state should eventually either be joined using pthread_join(3) or detached using pthread_detach(3);
see pthread_create(3).
It is an error to specify the thread ID of a thread that was created in a detached state in a later call to pthread_detach(3) or
pthread_join(3).
EXAMPLE
See pthread_attr_init(3).
SEE ALSO
pthread_attr_init(3), pthread_create(3), pthread_detach(3), pthread_join(3), pthreads(7)
COLOPHON
This page is part of release 3.27 of the Linux man-pages project. A description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
Linux 2010-02-03 PTHREAD_ATTR_SETDETACHSTATE(3)