[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