On Sat, May 12, 2018 at 4:20 PM Alexandru Militaru via so < [email protected]> wrote:
> Salut, > > Am următoarea problemă la testul 10: deși thread-ul master trebuie să > apeleze so_fork() de un număr random de ori, după un număr variabil de > apeluri ale funcției (diferă în funcției de rulare) el rămâne blocat. Am > verificat atent și thread-ul master nu este preemptat: nu îi expiră cuanta > și nici nu este dat la o parte de un proces mai prioritar. Pur și simplu > după un număr de apeluri se blochează. > În ce anume se blochează? > > Deși pare a fi deadlock, thread-ul master și celelalte thread-uri nu > interacționează cu niciun lock comun. Thread-urile worker așteaptă să > ruleze, în timp ce thread-ul master este singurul care lucrează. Cu toate > acestea, el se blochează la un moment dat și nu trece mai departe. Nu se > blochează în so_fork, se blochează după ce iese din această funcție. > Atașează-te cu gdb la thread-ul blocat și vezi în ce anume este blocat. Apoi, verifică cine mai lucrează cu acel loc și care sunt cazurile în care nu-l eliberează corect. > > > Care ar putea fi problema? > > Am încărcat codul pe gitlab. Userul meu este cmilitaru2501. > Numai bine, Răzvan
_______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
