IDL Keeps on Running...
QUESTION: Yikes! I started an IDL program running on my Windows XP computer this morning that uses a rather lengthy FOR loop to analyse a data file. As soon as I started it, I realized I had made a programming error (but not one that was going to crash the program). Of course, I wanted to stop the program, but because it was inside the FOR loop, I couldn't. So, I just did what I always used to do in previous versions of IDL and exited the IDL 7.0 IDLDE.
But to my great surprise, IDL kept running!!
Whoa! What's going on here!? Is this, like, normal? Now I can't even fire up another version of IDL up because it tells me I have one already running. Do I really have to wait here for a week while my program processes my data file? (Incorrectly!!)
I even tried Doctor Death (aka the Task Manager) and killed every application I could find that even smelled like IDL, but nada. And by now my computer is overheating and burning up all that extra RAM I bought to run this Big Boy.
Oh, the hell with it, I'm going to get my gun and stop the damn thing in its tracks.
ANSWER: Whoa, whoa, whoa. Hang on! No need for that. Get hold of yourself.
In truth, you made a bad assumption here, which led to some mistakes, but take your finger off that trigger a minute. We can fix this.
Of course, you totally screwed up by closing the IDLDE, but even that can be fixed. Open your Windows Task Manager by typing CTRL-ALT-DELETE. Select the Processes tab. Now click the column that says Mem Usage. Make sure the processes using the largest amounts of memory are at the top. These are probably the ones you want. Your Windows Task Manager might look like the one in the figure below.
|The Windows Task Manager with memory-hungry processes at the top.|
You want to kill the idl_opserver.exe and the idlde.exe processes. Just right-click on them and select End Process from the pop-up menu.
There. Quiet restored.
Now, about that assumption. While it used to be true that you couldn't interrupt a FOR look on a Windows computer, it is no longer true. To get out of your FOR loop, you could have just typed CTRL-C like everyone else in the world, and your program would have stopped as soon as it executed the next IDL command after receiving the CTRL-C signal.
See? Nice, huh.
Now go get a shot of whiskey and calm down, OK.
Copyright © 2007 David W. Fanning
Last Updated 20 August 2007