I tried several different scenarios and here's what I found.
1) If the top-level VI is assigned the execution system "same as caller", and it calls a subVI assigned to "Instr I/O", then the VIs will run in standard and instr I/O, respectively. This is correct behavior.
2) If the top-level VI is assigned to instr I/O and calls a subVI also set to instr I/O, both run in standard execution system. This appears to be a bug.
3) If the top-level VI is assigned to DAQ execution system and calls a subVI assigned to instr I/O execution system, the top-level VI runs in standard, and the subVI runs in instr I/O. The is incorrect behavior because the top-level VI should run in DAQ. This is probably related to #2.
I have attached the 3 sc
reenshots below showing the behavior.
Since the behavior appears to be related to the top-level VI's execution system in my test cases, I was curious if you're experiencing the same thing. In other words, is your time-critical VI, which is set to run in instr I/O, the top-level VI or called by a top-level VI set to run in instr I/O?