[so] aflarea valorii unui semafor pe windows
Daniel Baluta
daniel.baluta at gmail.com
Tue Aug 26 16:02:47 EEST 2008
2008/8/26 Cristina Basescu <cristina.basescu at gmail.com>:
> Mersi pt raspuns, stiam ca se poate afla valoarea semaforului cu
> ReleaseCount, insa param de la release tr sa fie o val strict pozitiva si
> asta modifica val semaforului. Nu e ceea ce caut.
Daca valoarea cu care incrementezi semaforul + val crt e mai mare
decat valoarea maxima a semaforului apelul esueaza ,
starea semaforului nu se modifica insa obtii vechea valoarea.
Totusi e nenatural sa incerci sa obtii valoarea unui semafor. Daca ai
nevoie de valoarea lui trebuie sa folosesti o variabila pe care o
incrementezi si o decrementezi atomic atunci cand se fac operatii pe
semafor.
> Am gasit ca exista in ntdll.dll o functie NTQuerySemaphore, am incercat sa o
> folosesc si imi intoarce mereu 0.. intrebarea e ar trebui sa mearga functia
> aia?
Nu stiu daca ar trebui sa iti mearga. Oamenii astia zic ca da.
http://www.codeguru.com/cpp/w-p/win32/article.php/c1423/
Probabil ca iti trebuie sa vezi daca o coada e goala sau nu la Tema 4.
Poti sa folosesti ceva de genul:
struct Queue{
HANDLE sem ;
int size; //...
};
Dan.
>
> Cristina
>
> 2008/8/26 Daniel Baluta <daniel.baluta at gmail.com>
>>
>> http://msdn.microsoft.com/en-us/library/ms685071(VS.85).aspx
>>
>> Teoretic daca pui lReleaseCount = 1, atunci PreviousCount-1 ,
>> e ceea ce cauti.
>>
>> Insa nu-ti recomand abordarea asta.
>>
>> Dan.
>>
>>
>> 2008/8/26 Cristina Basescu <cristina.basescu at gmail.com>:
>> > Salut,
>> >
>> > stie cineva cum se poate afla valorea unui semafor pe windows?
>> >
>> > Multumesc,
>> > Cristina
>> >
>> > _______________________________________________
>> > so mailing list
>> > so at cursuri.cs.pub.ro
>> > http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so
>> >
>> >
>> _______________________________________________
>> so mailing list
>> so at cursuri.cs.pub.ro
>> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so
>
>
> _______________________________________________
> so mailing list
> so at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so
>
>
More information about the so
mailing list