pthread version 문제가 발생하는지에 대해서 질문입니다.

roke79의 이미지


Pthread를 사용해서 producer and consumer relationship을 해결한

소스입니다. 근데 이 소스에서 약간의 문제가 발생해서 조언을 구하려고

올렸습니다. 이 소스를 pthread가 NPTL version이 0.34에서는 아무

이상없이 돌아가는데(shell 프로그램으로도 돌려보고, consumer를 10만번

이상도 돌려봤을 때 아무 이상이 없었습니다.)

근데 제가 쓰고있는 Linux OS에서는(Redhat 9.0 이고 pthread

NPTL version이 0.29 입니다. ) 가끔 씩 consumer가 blocked 된 상태가

발생합니다. (producer가 consumer의 pthread_cond_signal을 받고

깨어나야 하는데 깨어나지 못하고 계속 block 되어 이론 인해 consumer까지

block 되는 현상이 발생합니다.) 이 현상이 발생하는 것이 NPTL의 version

차이에서 발생하는 문제인지 아니면 제 Linux의 pthread lib 가 뻑이 난건지

알고 싶습니다. 소스와 실행결과에서 에러가 난 것을 파일을 capture 해서 올리

겠습니다. 많은 조언 구합니다.

(아 그리고 pthread_cond_broadcast 를 할 경우에는 에러가 발생하지 않습

니다.)
[/]

File attachments: 
첨부파일 크기
Plain text icon typescript.txt9.58 KB
파일 main.c4.58 KB
amister의 이미지

레드햇 버그질라나 업데이트 사이트에서 확인할 수 있습니다.
cond_wait 등에서 hangup 되는 버그가 있습니다. 최신의 glibc 패키지로 업
데이트 하시면 됩니다.

주의하실 점은, RH9 Bug-fixed 페이지에 보면 glibc가 위의 문제로 인해 올해
4월에 업데이트었다고 나오는데, 여기 있는 패키지는 업데이트 관련 버그가 있
어서 사용하지 말아야 합니다.

다음 URL을 참고하시고, 마지막 쪽에 수정된 패키지 URL이 있으니 거기서
다운받아 설치하세요.

https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=88456

그럼. :)