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
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
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
2. Programming
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
3. Programming
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
4. Programming
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
5. Programming
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
6. UNIX for Dummies Questions & Answers
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
7. HP-UX
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
8. 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
9. Programming
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
10. Programming
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
LEARN ABOUT OSF1
pthread_cleanup_push
pthread_cleanup_push(3) Library Functions Manual pthread_cleanup_push(3)
NAME
pthread_cleanup_push - (Macro) Establishes a cleanup handler routine to be executed when the thread exits or is canceled.
LIBRARY
DECthreads POSIX 1003.1c Library (libpthread.so)
SYNOPSIS
#include <pthread.h>
int pthread_cleanup_push(
void (*routine)(void *),
void *arg);
STANDARDS
Interfaces documented on this reference page conform to industry standards as follows:
IEEE Std 1003.1c-1995, POSIX System Application Program Interface
PARAMETERS
Routine executed as the cleanup handler. Argument passed to the cleanup routine.
DESCRIPTION
This routine pushes the specified routine onto the calling thread's cleanup handler stack. The cleanup handler routine is popped from the
stack and executed with the arg argument when any of the following actions occur: The thread calls pthread_cleanup_pop(3) and specifies a
nonzero value for the execute argument. The thread calls pthread_exit(3). The thread is canceled. An exception is raised and is caught
when DECthreads unwinds the calling thread's stack to the lexical scope of the pthread_cleanup_push(3) and pthread_cleanup_pop(3) pair.
This routine and pthread_cleanup_pop(3) are implemented as macros and must appear as statements and in pairs within the same lexical scope.
You can think of the pthread_cleanup_push(3) macro as expanding to a string whose first character is a left brace ({) and
pthread_cleanup_pop(3) as expanding to a string containing the corresponding right brace (}).
RETURN VALUES
None
RELATED INFORMATION
Functions: pthread_cancel(3), pthread_cleanup_pop(3), pthread_create(3), pthread_exit(3), thread_testcancel(3)
Manuals: Guide to DECthreads and Programmer's Guide
delim off
pthread_cleanup_push(3)