[so] [Tema4][Linux] Testul 10

Razvan Crainea razvan.crainea at gmail.com
Sat May 12 16:46:52 EEST 2018


On Sat, May 12, 2018 at 4:20 PM Alexandru Militaru via so <
so at cursuri.cs.pub.ro> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20180512/eeaaef7f/attachment.html>


More information about the so mailing list