¿Hay alguna forma de obtener cualquier tipo de identificador de subprocesos del subproceso que se está ejecutando actualmente sin recurrir al NSThread de Objective-C?Mac/iPhone: ¿Hay alguna forma de obtener un identificador de subprocesos sin utilizar Objective-C?
Estoy mejorando nuestro sistema de seguimiento de errores personalizado para manejar correctamente varios hilos. Para cada línea de salida de rastreo, me gustaría imprimir un id. De subproceso o un nombre de subproceso. Los subprocesos se instancian de varias maneras, p. se usan las funciones NSOperationQueue y pthread.
Actualmente tengo las siguientes dos alternativas, pero no estoy satisfecho con ninguna de ellas. ¿Hay más opciones?
opción pthread_t
pthread_t
parece ser un typedef de una plataforma específica _opaque_pthread_h
. Sería correcto utilizar campos de _opaque_pthread_h
por ahora, incluso si es pirateado y no portátil. Tiene un campo de tipo __sig
largo, pero parece tener el mismo valor para todos los hilos de mi proceso.
NSThread opción
[NSThread name]
requiere NSAutoreleasePool
a estar en su lugar, pero no quiero que eso sea un requisito ya que la mayoría de nuestro código es C++ puro, por lo que sería bueno que acaba de poner en marcha C++ función sin envoltura de piscina de autorelease.
¡Funciona muy bien, gracias! – JOM
Oh, esto es TAN mucho mejor que el método que estaba usando antes: configurar y recuperar valores en el NSDictionary de la secuencia. ¡Gracias! (Compatible con OSX 10.4.) – Marc
¿'pthread_mach_thread_np' no tiene las mismas limitaciones que' pthread_self'? A saber, 'thread_id' reutilizar con más frecuencia de lo esperado/deseado? – jww