Многопоточная программа на Си зависает
От: Sorc17 Россия  
Дата: 10.10.13 18:27
Оценка:
Всем привет.

Я постигаю многопоточное программирование и сегодня уперся в совершенно не понятное мне поведение своей программы. Вот её тестовый вариант: http://pastebin.com/S6bHbXcU скомпилить можно так: gcc -lpthread test.c -o test Почитал маны по pthread_cancel и pthread_mutex_lock и погуглил и всё равно не пойму, почему программа зависает (блокируется в одном из pthread_join навечно), ведь я освобождаю мьютекс после cancel-ов. И совсем уже взрывает мой мозг то, что если я оставляю константу TEST не объявленной, чтобы убрать вывод из потоков, то сколько программу не запускай, она не виснет. А если константу TEST объявить, то программа зависает через раз.

Подскажите пожалуйста, что я делаю не так
Для нас [Thompson, Rob Pike, Robert Griesemer] это было просто исследование. Мы собрались вместе и решили, что ненавидим C++ [смех].
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.