[so] [SO] [Tema4] [Linux] Joining threads

Radu Stancu stancumradu at gmail.com
Wed May 8 23:02:39 EEST 2013


Andrei - Cristian PAVEL <andrei.pavel at ...> writes:

> 
> Salut.
> 
> Obțin segmentation fault la testele care au în comun cel puțin un apel
so_fork() în handlerul dat ca
> argument altui so_fork(), deci toate fără testul 1 și testul 3. so_fork()
se apelează cu succes prima
> dată, de ce nu s-ar întâmplat și a doua oară? Depanarea îmi arată că
problema este la dealocarea
> stivei în cadrul funcției pthread_join(), de fiecare dată[1].
> 
> Fac join în funcția de rutină a threadului pentru threadul curent și în
so_end() pentru toate
> threadurile. Google nu știe despre problema mea. În pagina de manual
pthread_join[2], scrie că
> joinuri făcute pe același thread de către mai multe threaduri, în același
timp, are comportament
> nedefinit însă nu știu cum să evit asta sau dacă asta se întâmplă în cazul
meu. Care ar putea fi problema?
> 
> [1] http://pastebin.com/W28TEq3Y
> [2] http://man7.org/linux/man-pages/man3/pthread_join.3.html
> --
> Andrei Pavel
> 
> _______________________________________________
> http://ocw.cs.pub.ro/courses/so/info/lista-discutii

Eu fac join doar in end, si nu apar probleme. In functia de rutina ar trebui
sa ai doar apelarea scheduler-ului, apelarea handler-ului si pthread exit.
Poate de acolo e problema. Incearca sa faci asteptarea cu mecanisme IPC (gen
varibile de conditie), si nu cu join.




More information about the so mailing list