[so] Tema 3 TSD
Catalin Iacob
iacobcatalin at gmail.com
Wed Nov 29 02:34:53 EET 2006
In enunt se spune
"Pentru a testa utilizarea corecta a monitorului mentineti un index in
Thread Specific Data care indica pentru fiecare fir de executie daca se
afla sau nu in interiorul monitorului.... Indexul TSD este initializat
implicit la NULL deci va trebui sa folositi functia de intializare a
bibliotecii pentru initializarea lui cu o valoare utila."
Din ce inteleg eu, ideea e ca fiecare thread tine minte in acel void*
din TSD daca e sau nu in monitor. Si cum NULL adica 0 nu-i bun trebuie
sa punem de exemplu 1 si 2 pentru se afla / nu se afla in monitor.
Intrebarea e cum accesam fiecare thread in functia de intializare a
bibliotecii pentru a seta valoare initiala 2 in TSD? Eu am inteles ca
functia de initializare a bibliotecii se cheama automat o singura data
inainte de intrarea in main a threadului unic initial al procesului care
se executa si foloseste biblioteca (deci cu mult inainte ca acest proces
sa creeze alte threaduri care sa aiba TSD) ? Am si facut un mic program
de test care imi confirma ca e asa.
Oarecum paralel cu intrebarea dinainte de ce sa folosim acest mod de
lucru pentru a sti cine e in monitor si cine nu? De exemplu de ce sa nu
tina monitorul o lista cu toate threadurile care sunt in el?
Mutumesc (scuze ca pun cam multe intrebari in ultimul timp dar la
raspunsurile la cele dinainte chiar m-au ajutat si nu inteleg deloc ce
se vrea cu acest mod de folosire al TSD)
More information about the so
mailing list