LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

simultaneous asynchronous VI's with Notifiers

Ok, there is definitely something weird going on here. If I put the "Release Notifier" block inside of the Sequence Block, it works.

DevPanel block 2.png

Combine this with the Designator problem, which is also solved by putting a local variable to the "Designator" control inside of the sequence, and the rule seems to be: don't write to anything unless it's inside of a sequence block.

0 Kudos
Message 11 of 14
(1,476 Views)

@pblase wrote:

Combine this with the Designator problem, which is also solved by putting a local variable to the "Designator" control inside of the sequence, and the rule seems to be: don't write to anything unless it's inside of a sequence block.


The rule is, if things must happen in a specific order, enforce that order.   You have two threads racing to destroy a Notifier reference (note you "Force destroy" input in your main VI) and one thread racing to load a front panel before another sets an indicator on that not-yet-created front panel.

0 Kudos
Message 12 of 14
(1,455 Views)

But there are two different references. The subpanel is only destroying the reference that it obtains locally, and the main thread doesn't destroy the thread until after it has received the answer back from the subvi. And this doesn't explain the control behavior.

0 Kudos
Message 13 of 14
(1,425 Views)

 and the main thread doesn't destroy the thread until after it has received the answer back from the subvi. 


The main thread potentially force-destroys the subVIs notifier before the subVI releases it (why are you force destroying anyway?).

 


And this doesn't explain the control behavior.

You can't do something to the front panel till the front panel is loaded.

0 Kudos
Message 14 of 14
(1,418 Views)