У меня есть тип данных thread
в реализации интерпретатора для языка программирования, над которым я работаю. По разным причинам это довольно распространенная операция, когда требуется получить current thread
(который сам по себе является указателем: a struct thread*
).
Однако pthread_self(3)
вручает мне pthread_t
, который является непрозрачным типом; в некоторых системах это, похоже, unsigned long
, но я слышал, что не могу зависеть от того, что происходит. Я подозреваю, что хеш-таблица является правильной реализацией этого уникального отображения (указатель pthread_t
ID на struct thread
); тем не менее, я понятия не имею, как хэш pthread_t
надежно.
Буду признателен за советы любого, у кого больше опыта работы с pthread(3)
или, на самом деле, любой ситуации, в которой вам нужно «хэшировать» непрозрачный тип данных.