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.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

semaphore

Hi again,

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.


Why?

Thanks,

ToNi.
0 Kudos
Message 1 of 4
(2,314 Views)
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.
- tbob

Inventor of the WORM Global
0 Kudos
Message 2 of 4
(2,309 Views)
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.

Hope that this helps,
Bob Young
0 Kudos
Message 3 of 4
(2,291 Views)
I have solved it. I didn't acquire it well. Thanks to everybody. 😉

ToNi.
0 Kudos
Message 4 of 4
(2,282 Views)