QUOTE(torekp @ Oct 9 2007, 04:40 AM)
Just in case? Just in case of what? What will happen if it's not re-entrant?
QUOTE(torekp @ Oct 9 2007, 04:40 AM)
...Say I've got a mid-level VI that opens a connection to an Oracle database, reads a table, and closes the connection, and I use this mid-level VI all over the place. Make it re-entrant?
How does it work now? Is it broken? I would assume the answer is no. Everything works just fine doesn't it?
Re-entrancy is overated. In fact, it may make break a perfectly working program. Normal (non re-entrant) VI's provide Mutexing for free. Most people forget this and end up adding a lot more code to get something that a standard VI provides for free.
My rule of thumb is, don't use reentrant VI's unless you are having serious timing issues with parallel processes waiting too long to access a common VI. There are also other use case that can only be done with re-entrant VI's. For example recursion, cloned front panels etc. other uses are common subVI's used in XControls.
QUOTE(torekp @ Oct 9 2007, 04:40 AM)
In general: any good rules of thumb, not already contained in the aforementioned wiki, would be appreciated.
Reminder to all. If you participate in a forum thread and realize that something you are discussing should go on the LabVIEW Wiki, then put it in the LabVIEW Wiki. Even if it's incomplete, others will fill in the gaps.