[so] De ce TLS ?

iana ionel cristian so@atlantis.cs.pub.ro
Wed, 26 Nov 2003 02:53:59 -0800 (PST)


Salut

Am cateva nelamuriri in legatura cu tema 3:

1. Exista problema verificarii daca firul care a
apelat
enter, wait, leave, etc., este firul activ. Este
gresit
daca in loc sa retin o variabila boolean folosind tls,
procedez in felul urmator:

 - fiecare structura monitor retine id-ul firului
activ

 - atunci cand se executa o functie, (de ex enter)
verific sa am idActiv = 0, dupa care fac idActiv =
idFirCurent. Sau pentru leave verific sa am idActiv =
idFirCurent dupa care la iesire fac idActiv = 0,
s.a.m.d.

 - pt a obtine IdFirCurent folosesc pthread_self

2. Se cere "sa fim atenti la utilizari gresite ale
functiilor ". Este suficient ca functiile pt monitor
sa 
returneaze o valoarea de eroare cand se intampla asa
ceva ? Sau trebuie sa mai facem si altceva, de ex
mesaj afisat la consola, aruncare de exceptii ... ?

3. Monitorul se poate distruge doar atunci cand nu
exista fir activ in el si nu exista nici un fir care
este blocat intr-o coada de asteptare sau la vreo
variablia de conditie ? 


__________________________________
Do you Yahoo!?
Free Pop-Up Blocker - Get it now
http://companion.yahoo.com/