06-13-2012 09:50 AM
Hey folks,
this is a general inquiry simply because I don't think I could explain (nor upload) all of the complex pieces of the code involved in the creation of the isue I'm having. Long story short, I have several processes, the main proc calls up two others, there is some information exchanged between procs etc in the initialization process as expected, and there are also several errors that occur (still in the process of debugging it). The problem occurs when the processes are exited. All VIs stop running as they should, however something in the background (no visual prescence) has my CPU pegged at just under 100% and I have to kill LabVIEW in the task manager or wait for it to slowly respond to me telling it to quit/exit...
My question is, has anyone else ever had this issue? if so, could you point me in a direction that may help me find the culprit in my case? I've had plenty of situations when I started VIs that wouldn't stop due to the loop conditions I ut in place, but in this case all VIs show to be stopped...
Thanks for any ideas
06-13-2012 09:55 AM - edited 06-13-2012 09:57 AM
Try using the Desktop Execution Trace Toolkit. If you don't have that you can download a free 30 day trial.
You might also try the LabVIEW Task Manager
http://lavag.org/topic/14921-labview-task-manager/page__view__findpost__p__89934
06-13-2012 10:00 AM
I'd start by fixing the errors since that may take care of the whole kit and kaboodle.
The symptom you described is due to LV being very busy doing something. It could be a greedy loop wiht no Waits or a thread that tried to allocate a galaxy of memory and Windows is trying to unravel the mess.
If it still gets stuck after you fix your error and you run VI ANALyzer on the code then you may want to single step the shut down to see where gets stuck.
Ben
06-13-2012 10:01 AM
Can you be a bit more clear:
How does the main process call the others?
How is information exchanged between processes?
How does the quit/exit dialog look like?
What is your LabVIEW version?
Are you opening an infinite number of references, trying to allocate an infinite amount of memory, or similar?
06-13-2012 10:15 AM
you guys are quick! thanks for the help! (kudos to you!)
I don't see the data trace execution toolkit, but I think we have a lic for it... I'll have to download it.
regard to altenbach's questions:
How does the main process call the others?
One is an async call (remote interface)- the other is call by ref (GUI). When this first happened, I figured the one I called async was stuck running, but when I brought it up it was stopped...
How is information exchanged between processes?
Mostly by User events that are held in an individual api VI for each proc, very little is done via 'remote enqueue' (only the exit of the two sub proc's are done that way right now)
How does the quit/exit dialog look like?
There isnt a separate dialog, but the execution of the exit/quit button seems to go just fine, doesnt hang while pressed or anything.
What is your LabVIEW version?
2011
Are you opening an infinite number of references, trying to allocate an infinite amount of memory, or similar?
It may be that I'm opening a new ref each time... I'm gonna have to look into this.. thanks!
again thanks for all your help