Sponsored Content
Top Forums Programming Problem with POSIX pthreads and virtual memory Post 302222216 by JEscola on Wednesday 6th of August 2008 08:55:12 AM
Old 08-06-2008
Data Problem with POSIX pthreads and virtual memory

Hi, i have this code... in order to test my problem...
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);

}

this code uses aprox. 370 Mb of virtual memory, But when the threads finish it does not liberate the above mentioned memory.

Any body can help me??

Last edited by jim mcnamara; 08-06-2008 at 10:55 AM.. Reason: added code tags
 

10 More Discussions You Might Find Interesting

1. Programming

how can i avoid virtual memory problem

Hi i was trying to compile one of my project source file which is neary 2MB large. i couldnt compile it, instead getting an error like "insufficient virtual memory" how come i get away with this problem ,please suggest. thanks (1 Reply)
Discussion started by: Raom
1 Replies

2. Programming

Problem with pthreads

hi i have a code: I found that after exiting from child thread memory isn't freed. I commented everything which is "some actions" here, so thread's function contains only two lines. But it doesn't help. What do I do wrong? Thanks a lot (3 Replies)
Discussion started by: sery0ga
3 Replies

3. Programming

POSIX Thread - Memory leak

Hi all! I am implementing an http server in c++ using the posix thread, but i am having a memory leak and i cannot find the reason. I have already commented out the section that initializes the threads and i found out, the problem is when i initialize/run the threads. In the threads i have... (1 Reply)
Discussion started by: laurovalente
1 Replies

4. UNIX for Advanced & Expert Users

Shared Memory (Posix)

hi I had to create a shared memory segment which allows the creation of 8 child processes each with 1024 bytes and contains a common buffer area of 2096bytes. i was able to create the shared memory with shm_open() followed by ftruncate() and mmap() system calls. but for the shared buffer, i... (3 Replies)
Discussion started by: pretty
3 Replies

5. AIX

ulimits max locked memory virtual memory

Hi, Would any one be so kind to explain me : are ulimits defined for each user seperately ? When ? Specialy what is the impact of : max locked memory and virtual memory on performance of applications for a user. Many thanks. PS : this is what I can see in MAN : ulimit ] ... (5 Replies)
Discussion started by: big123456
5 Replies

6. UNIX for Dummies Questions & Answers

cpu, memory and virtual memory usage

Hi All, Does anyone know what the best commands in the UNIX command line are for obtaining this info: current CPU usage memory usage virtual memory usage preferably with date and time parameters too? thanks ocelot (4 Replies)
Discussion started by: ocelot
4 Replies

7. UNIX for Advanced & Expert Users

POSIX thread runs out of memory

i am creating threads in my program using the POSIX interface. when the thread starts executing i run out of memory and get a core dump. i have tried to increase the threads stack size using pthread_attr_setstacksize, but of no use since i guess the dynamic memory is allocated on the heap and... (1 Reply)
Discussion started by: aniketkadu2002
1 Replies

8. Programming

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 =... (8 Replies)
Discussion started by: JEscola
8 Replies

9. Programming

POSIX Message Queue Memory Allocation

Hi, I wanted to know whether the POSIX message queues are statically allocated memory by the kernel based on the parameters specified in the open or as and when we send messages, memory are allocated? Does the kernel reserve the specified memory for the message queue irrespective of whether... (1 Reply)
Discussion started by: sumtata
1 Replies

10. Solaris

Virtual Memory problem on local zone

Hi I have a problem with Virtual Memory on one local zone (myzone1): //from local zone (myzone1) swap -s total: 22888544k bytes allocated + 0k reserved = 22888544k used, 3325856k available swap -l swapfile dev swaplo blocks free /dev/swap ... (0 Replies)
Discussion started by: primo102
0 Replies
PAPI_remove_named_event(3)					       PAPI						PAPI_remove_named_event(3)

NAME
PAPI_remove_named_event - removes a named hardware event from a PAPI event set. SYNOPSIS
Detailed Description A hardware event can be either a PAPI Preset or a native hardware event code. For a list of PAPI preset events, see PAPI_presets or run the papi_avail utility in the PAPI distribution. PAPI Presets can be passed to PAPI_query_event to see if they exist on the underlying architecture. For a list of native events available on the current platform, run papi_native_avail in the PAPI distribution. @par C Interface: int PAPI_remove_event( int EventSet, int EventCode ); @param[in] EventSet -- an integer handle for a PAPI event set as created by PAPI_create_eventset @param[in] EventName -- a defined event such as PAPI_TOT_INS or a native event. @retval PAPI_OK Everything worked. @retval PAPI_EINVAL One or more of the arguments is invalid. @retval PAPI_ENOINIT The PAPI library has not been initialized. @retval PAPI_ENOEVST The EventSet specified does not exist. @retval PAPI_EISRUN The EventSet is currently counting events. @retval PAPI_ECNFLCT The underlying counter hardware can not count this event and other events in the EventSet simultaneously. @retval PAPI_ENOEVNT The PAPI preset is not available on the underlying hardware. @par Example: * char EventName = "PAPI_TOT_INS"; * int EventSet = PAPI_NULL; * int ret; * * // Create an empty EventSet * ret = PAPI_create_eventset(&EventSet); * if (ret != PAPI_OK) handle_error(ret); * * // Add Total Instructions Executed to our EventSet * ret = PAPI_add_named_event(EventSet, EventName); * if (ret != PAPI_OK) handle_error(ret); * * // Start counting * ret = PAPI_start(EventSet); * if (ret != PAPI_OK) handle_error(ret); * * // Stop counting, ignore values * ret = PAPI_stop(EventSet, NULL); * if (ret != PAPI_OK) handle_error(ret); * * // Remove event * ret = PAPI_remove_named_event(EventSet, EventName); * if (ret != PAPI_OK) handle_error(ret); * See Also: PAPI_remove_event PAPI_query_named_event PAPI_add_named_event Author Generated automatically by Doxygen for PAPI from the source code. Version 5.2.0.0 Tue Jun 17 2014 PAPI_remove_named_event(3)
All times are GMT -4. The time now is 06:21 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy