Tuesday, August 14, 2007

Necessary Invention: Stop Processing Key

I need a key, or an app which responds to a key, that will stop all application and network processing immediately. And I mean, immediately, drop dead, stop processing Now.

The biggest waste of my time on my computer is waiting for a window to come back to life: a video to stop loading, a clicked window to raise, and so on. Trying to cancel this is no use; even the Task Manager won't work until whatever it is relaxes.

Somewhere, some part of the processor refuses to stop until it hits a timeout or gets an answer. I don't want to wait a minute for this every five minutes, and I don't want to turn my computer on and off, and I don't usually need more memory.

This is in my top ten critical problems with my computer.



Anonymous said...

Have you tried having someone look for the cause of the freezes in the first place? Ie. Has you AV suddenly started chewing CPU time.

You can do what you want with Process Explorer (from sysinternals)

But what you're asking for is akin to having a car that seems to rev for no reason, and then taking it to a mechanic to fit a fuel cutoff switch rather than just fixing the engine.

Yehuda said...

Anon - You may be entirely right.

Maybe I'm being too lazy. I guess I have to devote a bit more time to solving it.


Gavin Schmitt said...

The quip would be "make sure your keyboard has an 'apple icon button'", but in all honesty, my G5 gets hung now and again too -- even to the point where force quitting doesn't help, or still takes some time to subdue the problem. I'd say it's rare (certainly more rare than my PC), but isn't a complete evasion of the problem :(

meowsqueak said...

It's unfortunately far more complicated than that usually. Every app that waits (blocks) on a network or disk operation would need to be written to handle 'asynchronous interruption' properly. Every program has a bunch of open resources - files, network sockets, etc, which have to be carefully managed. If you interrupt a program then the future of these resources has to be considered. The easiest thing to do would be to have a way to immediately kill a process that has 'hung' (and you can already do this on most operating systems), freeing ALL resources. But of course this terminates the program.

So unfortunately there's no generic 'stop waiting and continue' mechanism.

If the machine freezes while doing network stuff then you may have a slow DNS lookup problem (perhaps "localhost" isn't resolving?).