<div dir="ltr"><div>Bună seara,</div><div><br></div><div>Am încercat să folosesc metode de sincronizare pe threadurile mele astfel încât ele să apeleze handler-ul în ordinea în care au fost create și totodată să returneze id-ul thread-ului (return-ul din so_fork) înainte să apeleze start_thread.</div><div><br></div><div>Am întâmpinat două probleme:</div><div><br></div><div>- varianta stabilă, ce ducea într-adevăr la apelarea handler-ului în ordinea creării thread-urilor, făcea ca funcția so_fork() să ajungă la return abia după ce se termina de executat funcția start_thread, lucru ce nu ar trebui să se întâmple</div><div><br></div><div>- varianta instabilă, care nu asigură întotdeauna apelarea handler-ului în ordine, dă return înainte de start_thread dar cu toate acestea dacă aș salva într-o variabilă return-ul so_fork și as dori să mă folosesc de această variabilă în start_thread-ul so_fork-ului abia apela, variabila este goală (situația din test-ul 13)</div><div><br></div><div>Îmi este clar ca nu înțeleg cum trebuie făcută sincronizarea și modul în care trebuie apelate funcții și returnate valori. Situația cu care mă confrunt este asemănătoare cu exemplul făcut de Răzvan la curs, doar ca nu cred ca a fost urcat și acesta printre demo-uri ca să mă pot ajuta de el.</div><div><br></div><div>Am adăugat și link-ul către repo-ul meu de git, în caz că este folositor.</div><div><br></div><div>Multumesc,</div><div>Andreea Dincu</div><div><br></div><div>[1] - <a href="https://gitlab.cs.pub.ro/andreea.dincu/l3-so-assignments">https://gitlab.cs.pub.ro/andreea.dincu/l3-so-assignments</a></div></div>