2011-08-12 3 views
0

RW documentation에서 rwThreadHash를 사용하여 디버깅을 위해 threadId를 가져 오는 것이 좋습니다.하지만 여전히 스레드의 실제 Linux 스레드 ID와 일치하지 않습니다. 어떤 아이디어를 그것을 얻는 방법 (꼭 휴대용 방식이 아닐 수도 있습니다)? pthread_self()에 의해 반환 된 스레드 ID (2) gettid 호출에 의해 반환 된 커널 스레드의 ID와 같은 것이 아니다 :RWThreadId에서 리눅스 스레드 ID를 얻는 방법?

cout << rwThreadHash(threadId()) << endl; 
1477159840 

답변

0

나는 당신이 pthread_self() man page 노트에서 gettid()

를 찾고 있습니다 생각합니다. 당신이 인쇄하고있는 것은 pthread id와 같습니다.

+0

pthread 호출을 사용하여 * 현재 * tid를 얻을 수 있다는 것을 알고 있지만 문제는 실제로 관리하는 스레드의 RWThreadId를 반환하는 라이브러리를 사용하고 있다는 것과 그 이유는 무엇입니까? 스레드 ID의 한 유형에서 일반적인 리눅스 기반 유형으로 변환하려고합니다. – naumcho

+0

pthread id와 커널 스레드 id는 두 개의 다른 엔티티입니다. 당신은 전자에 액세스 할 수 있지만 후자에 액세스하려고합니다. 아마도 RogueWave는 스레드에서 실행될 함수/메서드를 지정하는 방법을 제공합니다. 이 메소드에 gettid()를 두어 커널 ID를 리턴하거나 최소한 로그에 표시해야합니다. 스레드가 변경할 수없는 라이브러리 코드를 실행 중이라고 말하면 실제로 SOL 일 수 있습니다. – Duck

관련 문제