"gs"레지스터는 지금까지 발견 된 바에 따라 스레드의 특정 영역 (TSD)을 가리 킵니다. 하나의 포인터 크기의 메모리는 pthread_key_create를 사용하여이 영역에 할당 할 수 있으며 pthread_setspecific을 사용하여 쓸 수 있습니다. apple's tsd.h보고 후64 비트 OSX에서 스레드 별 데이터 사전 정의 구조가 설정되는 방법 또는 위치는 어디입니까?
이 또한 즉 __TSD_THREAD_SELF, __TSD_ERRNO, __TSD_MIG_REPLY 및 __TSD_SEMAPHORE_CACHE의 TSD 메모리 영역의 시작 부분에서 미리 정의 된 같은 크기 (포인터 크기)의 일부 항목 것으로 보인다.
그래서 지금은 내 질문은 :
- 이 항목 미리 정의 된 구조의 모든입니까?
- pthread_key_create는 새 항목의 메모리를 예약합니까? (구 버전은 "gs"레지스터의 주소에서 오프셋으로 _PTHREAD_TSD_OFFSET을 사용하지만 새로운 OSX 소스에서는 찾을 수 없습니다)
- 여기서 사전 정의 된 구조를 초기화하는 소스 코드는 무엇입니까?
- 여전히 _PTHREAD_TSD_OFFSET이 있고 여전히 __TSD_RESERVED_MAX * sizeof (포인터)보다 훨씬 큰 경우 그 사이에 사용 된 공간은 무엇입니까?
는