From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
I have a vi with two while loops working in parallel at the same time. These while loops share a semaphore (the same) because I want one while loop depends on the another while loop. I create a sempahore and then in one while loop I acquire it. In the another while loop I release it (the semaphore acquired by the another while loop) after a few seconds and when I release it, LV says:
Possible reason(s):
LabVIEW: Release Semaphore called on a semaphore that was not currently acquired.
I don't understand because I acquire it before in that while loop. I am sure that when I release it, it already had been acquired before.
Post a simplified version of your code please. Also let us know what version of LV you are using. You can try to use execution trace (the light bulb) to see if the semaphore was aquired before the attempt to release.
If your acquire semaphore has a timeout set, and the timeout has expired, I believe that it is no-longer acquired. I have not really worked with semaphores so I may be wrong, but I believe that is how the timeout works.