pthread_t question

Dec 30, 2011 at 4:11pm
Hi! Does anyone know how to check if a pthread_t is set to a valid value?
e.g. I'd like to know certain thread is running or not, but hate to add another variable to record the status of that thread, can I use pthread_t directly?
Dec 30, 2011 at 4:36pm
Just to be clear. My question is: What is pthread_t anyway(On linux)? Is it a pointer to a struct? An int or a long? In which header file can I find the definition of pthread_t?
Jan 1, 2012 at 8:57pm
pthread_t keeps a thread ID after a thread is created, with pthread_create().

Normally, you should not worry about the actual type for pthread_t, and use the API to work with a thread. But, if you are really interested, start with pthread.h and you may find how it's defined by your pthread library. In the one I use, it is an unsigned long int defined in pthreadtypes.h.

typedef unsigned long int pthread_t;

Jiryih Tsaur
Jan 4, 2012 at 2:31am
That's right, it is only an ID (think of it as an index on vector of threads, although it might not be so simple). The information about the thread is stored in OS space, which is only accessible through the OS API.
Jan 5, 2012 at 4:03am
The problem is no different from telling if a file handle (or anything else) is initialised.

Wrapping things in classes allows you to guarantee initialisation and release.
Topic archived. No new replies allowed.