10-19-2011 04:22 PM
Does anybody know why a reentrant dynamic dispatch method cannot preallocate clones? The VI breaks unless you set shared clones.
Solved! Go to Solution.
10-19-2011 04:32 PM
The limit makes recursion impossible for dynamic dispatch vi's (can you imagine a large number of sibling methods called with deep recursion? Ouch my memory hurts!)
10-19-2011 05:23 PM
A bit more information here: http://lavag.org/topic/10539-reentrant-vi-with-dynamic-input-terminal-must-use-share-clones-between-...
10-19-2011 06:37 PM
Thanks - I even looked on Lava and didn't find it!
10-19-2011 07:52 PM
@nathand wrote:
A bit more information here: http://lavag.org/topic/10539-reentrant-vi-with-dynamic-input-terminal-must-use-share-clones-between-...
I have to admit. Steve Mercer explained it to me at a LUG (OK to the LUG) I'm still betting that this will eventaully be worked around by LabVIEW R&D. When the use cases make the investment worthwhile
10-19-2011 08:08 PM
I might be missing something, but it seems to me this would be difficult. With dynamic dispatch, you don't know which VI will be called at run-time, so you can't specifically pre-allocate a copy of a VI for that call. Instead, LabVIEW would need to pre-allocate a copy of every VI that could possibly be called, and it would need to do this any time a class is loaded at run-time as well. That's potentially a lot of copies of VIs allocated "just in case."
10-20-2011 10:45 PM