pthread가 mutex lock 상태인지 아닌지 판별
글쓴이: alice79 / 작성시간: 월, 2009/12/21 - 4:49오후
안녕하세요.
스레드가 뮤텍스 락/언락 상태인지 다른 루틴에서 확인해야 하는데
pthread_mutex_t 값에는 락 상태이면 0, 언락 상태면 뮤텍스 값이 들어가는 듯 해서
while(state_dir.mutex != 0)/*no work*/; /* 스레드 작업이 끝날 때까지 대기 */
이런 식으로 비교연산을 하면 간단할 줄 알았는데 정의되지 않은 연산이라고 나오네요.
pthread가 mutex lock 상태인지 아닌지 판별할 수 있는 방법이 있을까요?
Forums:
_trylock() 이라는
_trylock() 이라는 함수는 있습니다.
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
_trylock
아 trylock 리턴값으로 알 수 있겠군요.
pthread_mutex_trylock 함수가 EBUSY 를 리턴하면 뮤텍스가 이미 잠겨 있다는 사실을 나타낸다..\
...
while (!pthread_mutex_trylock()) 을 하느니 그냥 pthread_mutex_lock 해버리면 거의 똑같은 효과가 날 텐데요 (심지어 좀 더 효율적일 가능성도 있음.)
댓글 달기