03-25-2017 03:38 PM
Several years ago, I wrote an application that spawned 24 copies of a VI as a Reentrant Clone. The VI in question had its Execution Property set as Pre-Allocated Reentrant Clone. To allow the Clone to identify itself, I wrote a little utility that looks like this:
It got a reference to itself, tested its "IsCloneVI" property, and, if so, returned the Clone Name, at the end of which has a unique identifying string.
So I resurrected this old VI, recoded it in LabVIEW 2016, and tried it out. Sure enough, when Execution was set to Pre-allocated Reentrant Clone, Is Clone VI was True and the Clone name had a suffix.
I then (a) updated my LabVIEW 2016 f1 to the current LabVIEW 2016 f2, (b) made a few (trivial) changes to make this into a utility (by passing in a VI Reference so it would tell me about other VIs, instead of about itself), and ran more tests. All VIs came back as "non-Clones", even if they clearly had the Clone property set. So I went back to the above, and it also now always shows "Is Clone VI" as False.
Am I doing something "cleverly stupid" (i.e. I'm making a silly mistake, but just can't see it) or have I discovered a bug? I fear that all of my machines running 2016 have the f2 patch installed (oh, wait, I've got a machine with older versions of LabVIEW at work -- I can try re-creating this in LabVIEW 2014 and seeing what happens).
I'm going to go ahead and post this here now. I might be back shortly with more information if I can crack the firewall at work ...
Bob Schor
Solved! Go to Solution.
03-25-2017 04:41 PM
Duh. Yes, I'm a little stupid. A clone isn't a Clone until it is called by another routine. I was "testing" this by running it as a Top Level VI, so even though it said "I'm a Clone", I wasn't running it as a Clone. If I call it in yet another VI and look at its outputs, yep, there's the Clone Flag and the Clone Name, plain as day ...
Bob "Chagrinned" Schor