2012-02-04 6 views
0

두 스레드 (pthread_create을 통해 생성)가 있습니다. 그들은 join- 가능 스레드 (분리되지 않음)입니다. 하지만 나는 그들에게 pthread_join을하지 않습니다. 나는 잘못 알고 있지만 질문은 그렇지 않습니다. 스레드는 내부에 뮤텍스 잠금을 사용하여 힙에 데이터 구조를 공유합니다. 잠그는 스레드 만 mutex를 잠금 해제합니다.pthreads mutex 잠금 어설 션 오류

임의의 경우에 다음 오류가 발생합니다. thread1이 pthread_destroy 후 동일한 뮤텍스를 잠그려고 할 경우 thread2가 제대로 이제 뮤텍스 잠금을 해제하고 pthread_destroy을 수행하고 exit(1)를 통해 죽으면

pthread_mutex_lock.c:62: __pthread_mutex_lock: Assertion `mutex->__data.__owner == 0' 

질문은 "이"오류 또는 다른 오류를 얻을 것,이 경우에?

답변

2

규칙 위반시 어떤 오류가 발생하는지는 플랫폼에 따라 다릅니다. 따라서 확실히 알기 위해서는 직접 테스트해야합니다. 이것은 "당신도 이것을 시도 할 수 없습니다"조건이므로, 당신이 그것을 할 때 일어날 일에 대한 규칙이 없습니다.