[so] [Tema4][Linux] Nelamurire logica test Ring

Victor Vernescu victor.vernescu at gmail.com
Sat May 23 11:53:19 EEST 2009


Problema este urmatoarea:
           1. Faci signal, iar mutexul tau este inca blocat, deci
thread-ul de pe cond nu se executa inca.
           2. Eliberezi mutex-ul la finalul lui signal, moment in care
se lanseaza in executie thread-ul cu conditia, dar cel de signal nu
este blocat (probabil ca el continua sa execute cod nemonitor).

Elibereaza mutex-ul inainte sa semnalezi conditia, si lockeaza-l la
loc imediat dupa. Asta ar trebui sa iti asigure urmatoarea secventa
(presupunand ca eliberezi mutexul la finalul lui Wait):
           1. Signal de pe thread-ul principal
           2. Se lanseaza thread-ul cu conditia si blocheaza mutexul
           3. Thread-ul principal se blocheaza in mutex si asteapta ca
thread-ul cu conditia sa-si termine treaba.

Sper ca am fost coerent si ca rezolvarea e corecta (daca gresesc, nu
ezitati sa ma corectati :D).

Victor V.


More information about the so mailing list