Mantis - Squeak
Viewing Issue Advanced Details
2288 Kernel major always 11-30-05 20:23 12-01-05 20:44
new 3.8  
0002288: Emergency evaluator does not suspend other processes.
Try the following:

stopit := true. "Change to false later... if you can!"
[ [stopit] whileTrue: [Transcript show: 'hi!'] ] fork.
Object primitiveError: 'This is a crash!!'.

On my machine (Sq 3.8, Ubuntu Linux), this makes the image completely unusable. The emergency evaluator doesn't stick, Morphic keeps over-running everything and stops responding in a useful manner.

I'm going to investigate changing Object>>primitiveError: to see if I can suspend all processes except for the absolutely necessary ones.
 suspend processes.1.cs [^] (1,757 bytes) 12-01-05 20:40

12-01-05 20:44   
The attached changeset (suspend processes.1.cs) is a first cut at suspending other processes. I'll need somebody else to have a look at it before sticking it into Squeak. Specifically, I'm worried about the value of "Process activeProcess" changing underneath me... I'd imagine it shouldn't but I'm not certain.

I also suspect the code here would be better suited as a method of ProcessorScheduler (e.g. ProcessorScheduler>>suspendAllOthers). Thoughts?