Hi,
I Have questions about the reentrant property. From what I gather, the normal behavior for vi's is that the data stored in them is "saved" between different calls to a non-reentrant vi, even though the vi might called in several different places in a given vi. Also, since for the default, non-reentrant mode, there is a single instance of this vi, and so subsequent calls to the same vi have to wait for completion of previous calls. Yes? I have a bunch more questions.
If I call a non-reentrant vi from several different places within the same vi, only a single instance of this vi is created, with a single name space and program code space (correct?) , but when the re-entrant property is set, each iteration of the same vi spawns a new process, allocates new memory for variable storage and program code? Do all of these code instances persist throughout the life of the vi? Can they be freed without closing or leaving the vi in which they were created?
Say I have a vi called nonReentrant.vi. If subVIa calls nonReentrant.vi and another vi, say subVIb calls nonReentrant, are both re-using the same code space, or to they each have their own instance of nonReentrant? On completion of either subvi does nonReentrant persist. If not is there a way to make it persistent? If so, is there a way to free it after you're done using it.
Is there a way to make a vi conditionally reentrant?
I'll probably have more questions after these are answered.
Thanks for your patience