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 MOJAVE
pthread_attr_init
PTHREAD_ATTR(3) BSD Library Functions Manual PTHREAD_ATTR(3)
NAME
pthread_attr_init, pthread_attr_destroy, pthread_attr_setstack, pthread_attr_getstack, pthread_attr_setguardsize, pthread_attr_getguardsize
-- thread attribute operations
SYNOPSIS
#include <pthread.h>
int
pthread_attr_init(pthread_attr_t *attr);
int
pthread_attr_destroy(pthread_attr_t *attr);
int
pthread_attr_setstack(pthread_attr_t *attr, void *stackaddr, size_t stacksize);
int
pthread_attr_getstack(const pthread_attr_t * restrict attr, void ** restrict stackaddr, size_t * restrict stacksize);
int
pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize);
int
pthread_attr_getstacksize(const pthread_attr_t *attr, size_t *stacksize);
int
pthread_attr_setguardsize(pthread_attr_t *attr, size_t guardsize);
int
pthread_attr_getguardsize(const pthread_attr_t *attr, size_t *guardsize);
int
pthread_attr_setstackaddr(pthread_attr_t *attr, void *stackaddr);
int
pthread_attr_getstackaddr(const pthread_attr_t *attr, void **stackaddr);
int
pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate);
int
pthread_attr_getdetachstate(const pthread_attr_t *attr, int *detachstate);
int
pthread_attr_setinheritsched(pthread_attr_t *attr, int inheritsched);
int
pthread_attr_getinheritsched(const pthread_attr_t *attr, int *inheritsched);
int
pthread_attr_setschedparam(pthread_attr_t *attr, const struct sched_param *param);
int
pthread_attr_getschedparam(const pthread_attr_t *attr, struct sched_param *param);
int
pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy);
int
pthread_attr_getschedpolicy(const pthread_attr_t *attr, int *policy);
int
pthread_attr_setscope(pthread_attr_t *attr, int contentionscope);
int
pthread_attr_getscope(const pthread_attr_t *attr, int *contentionscope);
DESCRIPTION
Thread attributes are used to specify parameters to pthread_create(). One attribute object can be used in multiple calls to
pthread_create(), with or without modifications between calls.
The pthread_attr_init() function initializes attr with all the default thread attributes.
The pthread_attr_destroy() function destroys attr.
The pthread_attr_set*() functions set the attribute that corresponds to each function name.
The pthread_attr_get*() functions copy the value of the attribute that corresponds to each function name to the location pointed to by the
second function parameter.
RETURN VALUES
If successful, these functions return 0. Otherwise, an error number is returned to indicate the error.
ERRORS
The pthread_attr_init() function will fail if:
[ENOMEM] Out of memory.
The pthread_attr_destroy() function will fail if:
[EINVAL] Invalid value for attr.
SEE ALSO
pthread_attr_affinity_np(3), pthread_attr_get_np(3), pthread_create(3)
STANDARDS
pthread_attr_init(), pthread_attr_destroy(), pthread_attr_setstacksize(), pthread_attr_getstacksize(), pthread_attr_setstackaddr(),
pthread_attr_getstackaddr(), pthread_attr_setdetachstate(), and pthread_attr_getdetachstate() functions conform to ISO/IEC 9945-1:1996
(``POSIX.1'')
The pthread_attr_setinheritsched(), pthread_attr_getinheritsched(), pthread_attr_setschedparam(), pthread_attr_getschedparam(),
pthread_attr_setschedpolicy(), pthread_attr_getschedpolicy(), pthread_attr_setscope(), and pthread_attr_getscope() functions conform to
Version 2 of the Single UNIX Specification (``SUSv2'')
BSD
January 8, 2010 BSD