LabVIEW Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
SteveChandler

Abort All VIs in Project

Status: New

When improperly stopping a project that has launched asynchronous vis set to fire and forget, you end up with classes and libraries that are locked.

 

Reserved VIs.PNG 

 

There seems to be no way of unlocking them other than to close the project. There is an idea to abort called VIs when the parent stops but from the lack of kudos and by reading the comments it doesn't seem like a good one.

 

I know about and use the Abort.vi but it does not work in this case. The dropdown is empty:

 

Not running.PNG

 

Not even the LabVIEW Task Manager can help.

 

 

Task Manager.png

 

My idea is to have a button that does whatever closing the project does when it unlocks the class or library. Maybe this means it transparently closes the project and opens it again in the state it was in when the button was pressed. I don't know.

 

Abort Project.png

 

 

I know there are some similar ideas but as far as I can tell this is not a duplicate.

=====================
LabVIEW 2012


4 Comments
GregR
Active Participant

I like part of the way XControls handle this. They have a context menu item in the project for "Unlock Library for Editing". This is necessary because XControls are locked when any usage is in memory, not just when a VI is running. However, the functionality falls short. If a VI is running, this menu item opens a dialog showing the running VIs with no ability to do anything but close the dialog. I can't actually handle the situation. I am only informed of it.

 

This dialog should allow the user to abort all the needed VIs. Similar functionality should be available for any library or VI. If I'm looking at a reserved subVI and try to switch to edit mode, I should be given the option to abort the top level VIs so that I can edit.

 

Aborting is dangerous and you have to realize its affects before you do it. But we both know you're going to do it anyway, so why not make it easier.

thutch79
Active Participant

It's been 8 years. How is this not a thing yet? Countless times I run into this when debugging large applications. Even a simple "show me what's running" button would go a long way. Then I can pop open the offender and kill it so I can move on with debugging without having to close and re-open the project.

BertMcMahan
Active Participant

Throwing another kudo and comment on this. An additional use case is in the Actor framework... it's pretty easy to accidentally create a deadlock (like launching an actor in Pre-launch Init). It's a pain in the butt to try to figure out which specific VI is blocking, especially if you are 4-5 levels of inheritance deep. You have to close the project to abort all of the currently running VI's, and most of the traditional tricks don't work because many of these running VI's are clones.

_carl
Member

Really wish this (and the time wasted reloading the project, finding what I was working on) wasn't the best way to abort all of the running VIs in a project when I make a mistake...

_carl_0-1639858267274.png