05-30-2014 04:17 PM - edited 05-30-2014 04:18 PM
I have the references of two dynamic dispatch VIs, both clones of the same VI, with the setting shared clones reentrant execution. They are running in parallel, much like the way the actor framework launches actors. When I use the equals primative on the references it returns true, despite the references' hex values being different. If I type cast the references to I32 and then use the equals primative, I get false.
My only thought is that this has something to do with the equals operator possibly being overloaded for references, and maybe because I'm using shared clones or something the references, although different values may point to the same location in memory and it actually compares that. For instance, I know you can have two different pointers pointing at the same memory location. I don't know if this is possible with references though. Just grasping at straws, with my extrememly limited low level, text based programming knowledge. Any thoughts, anyone?
edit: yes, I have disconnected all wires, then rewired to ensure that wasn't the issue.
Solved! Go to Solution.
05-31-2014 08:03 AM - edited 05-31-2014 08:03 AM
Hi Greg,
can you provide a sample project to be tested?
Moreover: a hint can be found here:http://zone.ni.com/reference/en-XX/help/371361H-01/lvconcepts/comparison_funcs/
in the section "Comparing References".
Regards,
Marco
05-31-2014 11:05 AM
@MarcoMauri wrote:
Hi Greg,
can you provide a sample project to be tested?
Moreover: a hint can be found here:http://zone.ni.com/reference/en-XX/help/371361H-01/lvconcepts/comparison_funcs/
in the section "Comparing References".
Regards,
Marco
I will reproduce and put something up here a little later. After reading that, it probably is what I suspected.
06-02-2014 08:39 AM - edited 06-02-2014 08:53 AM
You need to cast to U32 or compare the "VI Clone Name" property. What you observed is covered in the help file but its a dig to get at.
See the third bullet in the
heading in Open VI Reference Function