티스토리 뷰

생활/주절주절

pthread_create hang?

Jaeyeon Baek 2013. 6. 11. 13:30

회사에서 만든 데몬이 특정 경우에 hang이 되는 증상이 발견 되었습니다.

내부적으로 약 20개의 thread를 보유한 녀석인데, 한개도 아니고 모든(아마도) thread가 

hang이라니.. 도무지 원일을 알 수가 없었습니다..


막상 sleep과 간단한 system() 밖에 없는 thread도 있었으니..

thread내에서 system함수와 sleep이 safe한지에 대한 분석도 해보았고.. (이건 결국 hang과는 동떨어진 이야기겠죠..)


설마설마 하는 마음으로.. thread를 생성하는 pthread_create()를 의심하고

구글에 도움을 청했습니다. 아니 왠걸... 

유사한 검색어가 잔뜩... 일단 오늘은 검색해서 나온 결과를 리뷰해보아야 겠습니다,


여하튼.. 오늘 교훈은..

오픈함수 절대 믿지 말자는 것이지요......




=========

헛다리였습니다.

현재 문제는 usleep이 thread에서 unsafe라고 하는군요..

해당 부분에 대한 분석을 해봐야겠습니다.


usleep()에 대한 man-page를 보면 아래와 같은 문구가 존재합니다.

This function is obsolete. Use nanosleep(2) or setitimer(2) instead.



댓글
댓글쓰기 폼