Mac/iPhone: существует ли способ получить идентификатор потока, не используя Objective C?

Обычно использование Беркли снабжает API сокетом, к sendto() одна или несколько дейтаграмм к известному IP-адрес широковещательного класса .

13
задан Teemu Kurppa 8 October 2009 в 21:27
поделиться

2 ответа

I found a one way that is enough to get some kind of unique identifier for trace output.

pthread_mach_thread_np can be used to get a thread identifier, an unsigned int on iPhone.

mach_port_t tid = pthread_mach_thread_np(pthread_self());

Apparently this is a same thread id that is used in NSLog output.

23
ответ дан 1 December 2019 в 21:53
поделиться

См. pthread_getname_np .

К сожалению, имя NSThread в настоящее время не передается в него. Имя NSThread - это просто ivar, поэтому не будет возможности чтобы добраться до него, кроме как с помощью метода. Вы всегда можете создать функцию C, которая создает пул автозапуска и получает имя. Тогда ваш код C ++ не нужно компилировать как ObjC ++.

pthread_getname_np , вероятно, является в любом случае немного более полезным, чем имя NSThread прямо сейчас. gdb и Instruments не знают об имени NSThread, только имя уровня pthread.

1
ответ дан 1 December 2019 в 21:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: