On Thu, Jun 23, 2011 at 7:26 AM, Bert Freudenberg <bert@freudenbergs.de> wrote:
I often get the Finalization process when I press Cmd-.

Usually I want the UI process. But it should be possible to break into a higher-level one too, if it takes much time. Not sure if this could be made more intelligent?

Seems to me that the code could check if the interrupted process was one of the system processes not to be interrupted then a different process could be chosen to interrupt. The list of processes in ProcessBrowser class>>registerWellKnownProcesses already has an allowStop accessor that seems to capture the desired intent.

So let's say that at least some of the list of well known processes gets moved to ProcessorScheduler and is consulted by ProcessorScheduler>>preemptedProcess to filter-out processes that should not be stopped by the user interrupt.

Bert, I could take a tilt at this and at the same time add the Qwaq code for the Cog VM's processpreemptionYields switch, which makes the VM behave like the VisualWorks VM such that preempting a process doesn't put it to the back of its run queue (an implicit yield) which is a much safer scheduling policy than the blue books.  And note that this is optional, but if in effect it does mean that preemptedProcess should interrupt the /first/ process on the relevant runnable list, not the /last/ :)

- Bert -
--
best,
Eliot