[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