: 제가 지금 다중 쓰레드 프로그래밍을 하고 있습니다.
:
: 다음과 같이 하고 있습니다.
: pthread_mutex_lock(&lock);
: while( 조건이 참일 동안 )
: pthread_cond_wait(&con,&lock);
: pthread_mutex_unlock(&lock);
:
: 쓰레드가 10개 돌아 갈때, 조건에 맞는 쓰레드만이 cond_wait을 하고,
: 그리고 나머지 쓰레드들 중에서 한 쓰레드가
: pthread_broadcase(&con)을 사용하여 cond_wait을 풀어주구여..
: 근데.. 너무 이상한 것이. 쓰레드가 wait을 하고 풀리고
: 잘 진행 되다가 어느 순간.. 멈춰 버립니다..
: deadlock 은 아닌 것 같구, 무한히 wait을 하는 것 같습니다.
: 근데. 더 이상한 것은. 이렇게 되면.. 모드 스레드의 기능이 정지가 되죠.
: 왜 그런걸 까요???
==
으흠.. 이렇게만 봐서는 잘 모르겠습니다. 저 코드만 봐서는 문제가
없는 것 같으니깐.. (으흠.. 기억이 가물가물..)
일단 추정하기로는 pthread_cond_broadcast() 앞뒤로 lock 를 잠그고 풀어주는
게 빠지지 않았나 싶군요. 예? 아니라고용? :( 크크..--Reiot, the Fallen Lord of MUDMANIA