[so] [Tema3] Modificare date din ControlMonitor

Laura Ionita lory_ro2003 at yahoo.com
Sat Feb 9 14:09:59 EET 2008


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


       
---------------------------------
Never miss a thing.   Make Yahoo your homepage.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cursuri.cs.pub.ro/pipermail/so/attachments/20080209/aad215bc/attachment.html


More information about the so mailing list