One nice feature of SMO is the ability to programmatically abort an instance of a SMO that did not stop properly when asked to. Very similar to what you would do with the big red "abort" button in the labVIEW IDE.
The abort method is called in the "destroy.vi" method of the SMO. However, this functionnality doesn't work for me and I'm not sure it is supposed to work.
Indeed, the SMO is attempting to call the abort invoke method on the reference of "process.vi" which is a subvi of "LaunchProcess.vi". To my understanding, LabVIEW does not allow to programmatically kill a subvi. Only a top level vi can be killed with the "abort" invoke node (top levels vi include vis launched with the "run" method or with the "asynchronous call" method and the x80 flag for instance). Calling the "abort" method on a subvi's reference ends up with error 1000.
Hence I think that LaunchProcess.vi can indeed be aborted programmically but not process.vi and this is why the abort feature doesn't work in SMO.
Am I missing something?