<div dir="ltr">Bine, acum sÄ ĂŽncerc sÄ fac un rezumat la ceea ce am ĂŽnČeles:<div>- thread-ul care face so_init ar trebui sÄ se afle ĂŽn coada noastrÄ cu prioritÄČi</div><div>- nu se asigurÄ nicicum cÄ so_end va fi fÄcut dupÄ ce toate thread-urile ĂŽČi vor ĂŽncheia execuČia aČadar trebuie sÄ ne asigurÄm noi cÄ acest lucru se ĂŽntâmplÄ ĂŽn so_end(rulând cu helgrind am vÄzut cÄ se poate face so_end ĂŽn timp ce mai sunt thread-uri care folosesc acele structuri de date Či apare segfault)</div><div>- ĂŽn cadrul thread_start din enunČ trebuie sÄ ne asigurÄm cÄ thread-urile ĂŽČi apeleazÄ handler-ul ĂŽn ordinea din coada cu prioritÄČi iar dupÄ apelarea acestuia ele trebuie sÄ se scoatÄ singure din coadÄ sau pentru a apela pthread_join() ĂŽn so_end ar trebui sÄ le punem la finalul cozii Či sÄ lÄsÄm eliberarea doar thread-ului care face so_init</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Ăn joi, 2 mai 2019 la 11:42, Mihai Barbulescu <<a href="mailto:b12mihai@gmail.com">b12mihai@gmail.com</a>> a scris:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Wed, 1 May 2019 at 19:31, IonuČ Mihalache via so<br>
<<a href="mailto:so@cursuri.cs.pub.ro" target="_blank">so@cursuri.cs.pub.ro</a>> wrote:<br>
><br>
> Či ĂŽncÄ o ĂŽntrebare pe care am uitat sÄ o adresez: Cum sÄ fac debug pentru cÄ dacÄ folosesc printf pot apÄrea sincronizÄri nedorite?<br>
<br>
Sugestia 1 (profesionista): logging intr-o zona din RAM/memoria<br>
procesului mapata dinainte in procesul tau numit "scheduler" in care<br>
threadurile scriu. Apoi ai alt proces care colecteaza aceste loguri. O<br>
scriere in RAM tot o sa te coste deci poti avea desincronizari. Cele<br>
doua procese impart un /dev/shm.<br>
Sugestia 2 (cea mai la indemana pt voi):<br>
<a href="http://valgrind.org/docs/manual/hg-manual.html" rel="noreferrer" target="_blank">http://valgrind.org/docs/manual/hg-manual.html</a><br>
<br>
GDB nu poate fi folosit prea reliable pentru ca asa cum printf strica<br>
sincronizarile ghici ce-ar face un breakpoint :)<br>
<br>
-- <br>
Cu stimÄ,<br>
Mihai BÄrbulescu<br>
</blockquote></div>