07-28-2002 11:18 AM
07-28-2002 01:01 PM
LabVIEW, C'est LabVIEW
07-29-2002 03:27 AM
07-29-2002 08:36 AM
LabVIEW, C'est LabVIEW
07-29-2002 09:02 AM
06-18-2010 05:44 PM - edited 06-18-2010 05:51 PM
------------------
JeanPierre wrote:
if by dynamic call you mean using "Call by Reference Node" then yes "Call Chain" DOES return the chain of callers up to the Top Level VI.
------------------
OK, so as long as you're operating within the same application instance this is true. But, if you open a remote application instance and use CBR (Call By Reference), be advised that the called VI immediately becomes top level. A "Call Chain" function called within that VI will only report one element (itself).
When crossing the application instance boundary (e.g. a VI in an LVPROJ or EXE using CBR to run a VI in another EXE) note that:
Queue references, etc. are managed by top level VIs. This means that subVIs that create queues can run and then go idle as long as the top level caller doesn't go idle. When the subVI becomes the top level caller (because it was called by CBR in another application instance), any references it creates are immediately disposed when the subVI goes idle. Also, USRs (Uninitialized Shift Registers) reinitialize when the managing VI goes idle. So, while I haven't checked this, watch out for USRs getting reinitialized with the next CBR call when the CBR crosses an application boundary.
06-21-2010 08:06 AM
@LabBEAN wrote:
------------------
@JeanPierre wrote:
if by dynamic call you mean using "Call by Reference Node" then yes "Call Chain" DOES return the chain of callers up to the Top Level VI.
------------------
OK, so as long as you're operating within the same application instance this is true. But, if you open a remote application instance and use CBR (Call By Reference), be advised that the called VI immediately becomes top level. A "Call Chain" function called within that VI will only report one element (itself).
When crossing the application instance boundary (e.g. a VI in an LVPROJ or EXE using CBR to run a VI in another EXE) note that:
Queue references, etc. are managed by top level VIs. This means that subVIs that create queues can run and then go idle as long as the top level caller doesn't go idle. When the subVI becomes the top level caller (because it was called by CBR in another application instance), any references it creates are immediately disposed when the subVI goes idle. Also, USRs (Uninitialized Shift Registers) reinitialize when the managing VI goes idle. So, while I haven't checked this, watch out for USRs getting reinitialized with the next CBR call when the CBR crosses an application boundary.
I can confirm!
I have also seen queues created by a served AE invalidated when the network connection to the the AE drops out even though the app running in the machne is still active. it was subtle but it makes sense.
Ben