Problem with pthreads


 
Thread Tools Search this Thread
Top Forums Programming Problem with pthreads
# 1  
Old 02-20-2007
Problem with pthreads

hi
i have a code:

Quote:
void* _doesSmth(void* _arg)
{
DoesSmthArg* arg = reinterpret_cast<DoesSmthArg*>(_arg);
//some actions
pthread_exit(NULL);
}
//not important code
pthread_t pthread;
DoesSmthArg arg;
while(true)
{
//.....
int rc = pthread_create(&pthread,
NULL,
_doesSmth,
&arg);
if (rc)..... //.....
}
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
# 2  
Old 02-20-2007
I'm not understanding the problem. From what you describe, you seem to think that you have seen memory being given up by a process after a thread exits. Or have you actually seen that? I suspect not.

UNIX does not relinquish memory like that. Each process holds onto any memory it gets during runtime, and releases it only during process rundown. Process memory may get written to swap if main memory is full.

Edit:
One extra thought - early Linux kernels (before 2.4 I think) implemented "threads" essentially as separate processes, for example. When those threads exited, you got memory back. Is that what you mean?

Last edited by jim mcnamara; 02-20-2007 at 04:39 PM..
# 3  
Old 02-21-2007
I meant that memory which was allocated on thread's creating was freed only after process terminating so after child thread finished system didn't reuse its resources but kept them hm.. "inaccessible".
But I've already got the answer. I didn't detach threads :-) Stupid, yeah?
# 4  
Old 02-21-2007
So called dead threads.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Idleness with pthreads

Hello, I am writing a threaded program using the pthread library in linux. I have a master thread that needs to control worker threads, in particular, it has to be able to ensure that none of the worker threads will be running for a specified amount of time, even if the worker threads are... (7 Replies)
Discussion started by: andres625
7 Replies

2. Programming

MultiThreading using Pthreads

Situation: i have multiple pthread_create calls like this: pthread_create(...., ThreadFunc1,.....); pthread_create(...., ThreadFunc2,.....); . . which i am using to create multiple threads.All the "ThreadFunc<i>" functions are actually calling same function "Receive" of a class using same... (3 Replies)
Discussion started by: Sastra
3 Replies

3. Programming

Problem with POSIX pthreads and virtual memory

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

4. HP-UX

pthreads

Hi! I'm linking my hpux code using -lpthread (gcc), yet it references libpthread_tr.1, the debug version of the pthread lib. How do I force it to use pthreads? Thanks, :) (3 Replies)
Discussion started by: zackz
3 Replies

5. UNIX for Dummies Questions & Answers

Question on Pthreads

How to give superuser privileges while setting the attributes like pthread_attr_setschedpolicy( )?? Even with normal user mode ,it is working fine for me.But in man pages, they have specied that to set the scheduling policy as SCHED_FIFO, the process should have superuser privileges. (0 Replies)
Discussion started by: yashavant.a
0 Replies

6. Programming

Behavior of pthreads

Hi All, I ve written a small program to get started off with pthreads. I somehow feel the program doesnt meet the purpose. Please find the code and the output below. Please find my question at the bottom. #include <pthread.h> #include <stdio.h> #include <stdlib.h> void *PrintThread1(void... (4 Replies)
Discussion started by: nhrraj
4 Replies

7. Programming

PThreads

I have created a thread program, it is attached. My problem is that I need to loop this program multiple times, and basically reset everything including the threads created previously. I try to loop the program, the first run is fine, as always, but the second run of the program, the initialize... (0 Replies)
Discussion started by: justgotthis
0 Replies

8. Programming

pthreads

howcome that pthtreads spawn 2 extra processes? I'm kind of new with pthreads but fork() did not act like this. Anyone who can give me a technical explanation of what happends with mother / daughter processes? Best regards Esaia. (2 Replies)
Discussion started by: Esaia
2 Replies

9. Programming

pthreads

Does any one no of some good web site which will explain about how to program using pthreads in a UNIX enviroment? (6 Replies)
Discussion started by: fishman2001
6 Replies

10. UNIX for Advanced & Expert Users

PThreads

Can anyone explain me how to use pthread_key_create() , pthread_setspecific(), pthread_getspecific() and pthread_key_delete () routines in pthreads. Kindly state by an example. (3 Replies)
Discussion started by: S.P.Prasad
3 Replies
Login or Register to Ask a Question