Search the Community
Showing results for tags 'execution'.
-
Shared clone reentrant execution. How can I get clones shared?
_Y_ posted a topic in LabVIEW General
I tried to reuse clones of a re-entrant VI and did not succeed. Help says: “Shared clone reentrant execution—Allows parallel execution … this type of reentrancy reuses clones among VI calls. If a VI call occurs while all clones are in use, LabVIEW allocates a new clone for that VI call…”. As I understand, if there is a non-used clone, it has to be used instead of making a new allocation. I created a small project (attached archive Test_DynamicCloning.zip). It has two VIs. The r.vi is set as Shared clone reentrant execution. It does not do much but only counts the number of invocation with an uninitialized shift register and closes own FP after 5 sec (alternatively it is closed with a button click): main.vi creates a new clone on button clicks: But each click of the button results in a new clone that is indicated by both: new clone number in the title bar and by the shift-register counter. Now I set Auto Dispose Ref to true and run again. The title bar indicates reusing of the same clones but the shift-register counter shows that the clone is used first time. So, I need your opinions: What happens in the background? Why and how Auto Dispose Ref influences the cloning process? Why the shift register is re-initialized? Thank you Test_DynamicCloning.zip- 4 replies
-
- asynchronous
- reentrant
-
(and 2 more)
Tagged with:
-
Hi Ppl, I'm trying to reserve a VI for execution. I couldn't find any property/method that does it, in VIServer. LabVIEW ActiveX does expose a method to reserve the VI. But my problem is how to keep the VI in memory even after the VI that opened the reference stops running. I was wondering how TestStand does this. TS loads VI's into memory and reserves them. If TS used some code that open's these VI's ref, after that code stops these VI's should go out of memory. But that doesn't seem to happen.