Como obtenho um ID de thread de um pthread_t arbitrário?

Tenho um pthread_t e gostaria de alterar a afinidade da CPU. O problema é que estou usando o glibc 2.3.2, que não possuipthread_setaffinity_np (). Tudo bem, porém, porque pthread_setaffinity_np () é um invólucro desched_setaffinity (), que pode ser chamado passando um ID de thread em vez de um ID de processo para definir a afinidade para um thread arbitrári

MA ... O ID do encadeamento com o qual sched_setaffinity pode trabalhar é um ID do encadeamento do SO, do tipo que você pode obter nogettid () chamada do sistema.Isso é diferente do tipo opaco pthread_t, e gettid () retornará apenas o ID da thread do thread atual. Eu preciso ser capaz de definir a afinidade da CPU de um thread arbitrári

Infelizmente, não consigo acessar as partes privadas do pthread, o que me permitiria roubar o ID do thread lançando um pthread_t para umstruct pthread *. Melhor ainda, eu acho, já que confiar em implementações privadas está pedindo atéMai problema

Eu também tenho lido sobre o pthread_getunique_np, no entanto, isso retorna um "identificador integral exclusivo" - que não acredito que seja de forma alguma equivalente a um ID de thread do S

ortanto, a pergunta: como posso obter um ID de thread de um pthread_t arbitrári

questionAnswers(5)

yourAnswerToTheQuestion