11-14-2005 04:17 PM
We are seeing our application lock up occasionally at a VI Server Call By Reference node. The VI acts like it is waiting for subVI called to execute, but the subVI acts like it never got the message to execute. We've seen this at a number of VIs that call subVIs by reference. In some cases we are using strickly typed VI references, and in other cases we are not. We've seen the code lock up in both. Has anyone else seen this type of behavior?
We are running LabVIEW 7.0, Windows XP, and TestStand 3.0.
Also, I noticed that in a couple of places, the reference isn't explicitly closed. Since these VIs are only a small part of the application, not called very often, would that cause much of a problem (memory or otherwise)?
11-15-2005 03:50 AM
11-15-2005 01:39 PM
I think the problem may be an interaction with TestStand, possibly a conflict with different threads. One question that I can't find the answer to is: what execution system do VIs run in when they are called by reference? For example, if TopLevelVI.vi calls SubVI.vi by reference, if TopLevelVI.vi is set to "other2" and SubVI.vi si set to "same as caller", does SubVI.vi run in the "other2" execution system, or does it run in the default "standard" execution system?
Tom
11-16-2005 02:16 PM
Hi Tom,
That is a very interesting question! I had to check around a bit to find someone who knew this, but it seems that calling a VI by reference doesn't prevent it from using the execution system of its caller. Therefore, in the example you specified, the subVI would run in the "other2" execution system.
Best Regards,
Megan B.
National Instruments