J'ai un type de données thread
dans l'implémentation de l'interpréteur pour un langage de programmation sur lequel je travaille. Pour diverses raisons, il s'agit d'une opération assez courante, pour obtenir le actuelthread
(qui est lui-même un pointeur: un struct thread*
).Comment puis-je inverser (hachage) `pthread_t`s pour structurer des pointeurs?
Cependant, pthread_self(3)
me donne un pthread_t
, qui est un type opaque; sur certains systèmes, il semble être un unsigned long
, mais j'entends que je ne peux pas dépendre de cela étant le cas. Je soupçonne qu'une table de hachage est l'implémentation correcte de ce mappage unique (pthread_t
ID au pointeur struct thread
); Cependant, je n'ai aucune idée de comment hash le pthread_t
de manière fiable.
J'apprécierais le conseil de n'importe qui avec plus d'expérience avec pthread(3)
ou, vraiment, n'importe quelle situation où vous devez "hacher" un type de données opaque.
Si c'est un type opaque, vous ne pouvez vraiment pas de hachage, puisque vous Je ne sais pas comment c'est grand. – Spudd86