2012-02-04 4 views
0

У меня есть две темы (созданные через pthread_create). Они являются join -соответствующими нитями (не отсоединены). Но я не делаю pthread_join на них, неправильно знаю, но вопрос не в этом. Темы разделяют структуру данных на кучу с блокировками мьютекса внутри нее. Только те, кто его блокирует, разблокирует мьютекс.pthreads mutex lock assertion error

В некоторых случайных случаях я получаю следующую ошибку.

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

Вопрос в этом случае, если thread2 правильно разблокирует мьютекс и делает pthread_destroy и умирает через exit(1), теперь, если thread1 пытается заблокировать тот же мьютекс после pthread_destroy, вы получите «эту» ошибку или другую ошибку?

ответ

2

Какая ошибка вы получаете, если таковая имеется, когда вы нарушаете правила, зависит от платформы. Поэтому вам нужно будет проверить это самостоятельно, чтобы точно знать. Это «вам не разрешено даже попробовать это», поэтому нет правила того, что должно произойти, когда вы это сделаете.