Every modern languages provide counting semaphores. It can be used either for mutual exclusion or for task synchronization (a kind of occurrence, but semaphore can count the number of releases).
It was ok for LabVIEW 5, and 6 and 6.1. But now, in LabVIEW 7 Express (i have to test it on v7.1), it is an error to realease a semaphore that "has not been acquired". In other words, it is not possible now to create a 0 sized semaphore (before version 7, the only meaning for size was initial value) in order to achieve counting task synchronization...
I have done many programs with this semantics (size is only the initial value) that are now not functionning.
For me, either we should be able to give an initial value to a
semaphore, or the test on the size that is done inside "release semaphore" should be removed. It is not serious for a language like LabVIEW to provide only "Mutual exclusion" semaphores.
I don't know if the size test added in version 7 is of any interest for anyone
I posted a feedback reqest in order to ask to come back to semantics of version 6.x (remove test on a semaphore size in "release semaphore"). Moreover, I think that like me, people used to use semaphores as synchronisation mechanisme, with this semantics change, these programs won't run in LabVIEW 7.
Has anyone the same problem, or has anyone another point of view on this change ?