[so] [Tema3] Modificare date din ControlMonitor
    Laura Ionita 
    laura.ionita at gmail.com
       
    Sat Feb  9 15:02:50 EET 2008
    
    
  
#se pare ca de pe adresa de yahoo nu merge, asa ca retrimit emailul.
Scuze daca ajunge in dublu exemplar.
Salutare,
La tema 3 pe Windows (am portat tema de pe Linux, unde merge foarte
bine) am urmatoarea problema:
Testul 2:
test: Create......................................................passed
MutexEnterLock
    Enter
MutexEnterUnlock
MutexEnterLock
    Enter
        IncEnter();    //functia din ControlMonitor
        MutexEnterUnlock
        DecremSem 7bc
test: FunctiaA....................................................
CORECT: 1 0 0 0 0 0
variabilele globale: 0 0 0 0
----->failed
MutexLeaveLock
    Leave
        IncremSem 7bc
        DecEnter()    //functia din ControlMonitor
 MutexLeaveUnlock
        MutexEnterLock
//alte comenzi din Enter..
MutexEnterUnlock
test: FunctiaB....................................................
CORECT: 0 0 0 0 0 0
variabilele globale: 0 0 0 0
passed
Cum functioneaza functiile mele:
Enter:
Daca monitorul este ocupat, incrementeaza EnterQueue-ul, deblocheaza
monitorul si thread-ul asteapta sa fie planificat
(WaitForSingleObject). Functia se va termina dupa ce are loc
planificarea.
Leave:
Planifica alt thread din una din cozi (in cazul de fata din
EnterQueue) - ReleaseSem, decrementeaza EnterQueue si iese.
Lock-ul folosit este acelasi la toate functiile.
Iar la Testul 3, am aceeasi problema cu modificarea datelor globale
din ControlMonitor: declar un monitor cu 2 conditii si dupa 2
Enter-uri la primul Wait primesc eroarea "Ai declarat ca ai 0
conditii; deci nu poti zice ca incrementezi/decrementezi con" (adica
se modifica NrCond atat la Test3, cat si la Test2)
Are cineva vreo idee ce se intampla? Multumesc anticipat,
Laura
    
    
More information about the so
mailing list