views:

225

answers:

2

Hi everybody,

I'm developing a multi threaded Unix application in C. Is there a simple way to get the count of the number of simultaneously active threads? I don't want to have to write the code to keep track of the number of active thread if it already can be done for me by the library! :-)

I'm using POSIX pthreads, and I'm trying to write as portable as possible code for Unix and Unix-like systems.

+2  A: 

No, not in pthreads per se. POSIX Threads tries to specify only primitives or basic utility constructs, and considers even pthread_join a convenience function, not a primitive.

Certain libraries may offer non-portable solutions (look for _np in the name on HP-UX, for instance), but for pthreads per se, you're on your own.

pilcrow
you're right! unsigned int pthread_is_multithreaded_np(void) doesn't seem to run on Linux
Big Mike
@anonymous_downvoters, please detail your reasons for the downvotes!
pilcrow
Yeah, that was weird. I upvoted this one when I saw the downvotes. Please, give details on why.
Gonzalo
+1  A: 

You could I guess keep a count of it in the constructor/destructor but make sure you handle it concurrently as to avoid race conditions.

Floetic