Is there a way to get any kind of thread identifier of the currently running thread without resorting to Objective-C's NSThread.
I'm improving our custom debug tracing system to handle multiple threads properly. For each line of trace output, I'd like to print a thread id or a thread name. Threads are instantiated in various ways, e.g. both NSOperationQueue and pthread functions are used.
I've currently a following two alternatives, but I'm not satisfied with either of them. Are there any other options?
pthread_t option
pthread_t
seems to be a typedef of a platform specific _opaque_pthread_h
. It would be ok to use fields of _opaque_pthread_h
for now, even if it's hack-y and not portable. It has a __sig
field of type long, but that seems to have a same value for all threads of my process.
NSThread option
[NSThread name]
requires NSAutoreleasePool
to be in place, but I don't want that to be a requirement as most of our code is pure C++, so it would be nice to just to launch c++ function without autorelease pool wrapping.