3.8.1 Sloooooow redraw with debugger

Andreas Raab andreas.raab at gmx.de
Fri Oct 27 17:40:15 UTC 2006


Colin Putney wrote:
>> I once had a situation in which I could reproduce the problem and then 
>> found a way to fix it by changing Debugger 
>> class>>openOn:context:label:contents:fullView: not to fork immediately 
>> but to do a WorldState addDeferredUIMessage: [..] instead.
>> This change went into 3.9, and I have the impression that the issue 
>> doesn't pop up that often anymore, however, it is still there.
> 
> This is my experience as well.

I haven't seen it after these fixes went in. What seems to happen is 
that the redraw of the debugger is competing with the UI process (this 
is why scheduling it with WorldState fixes the problem). You can see 
this for example by doing something like here:

[
	process := [] newProcess.
	context := process suspendedContext.
	debugger := Debugger new process: process controller: nil context: context.
	debugger openFullNoSuspendLabel: 'test'.
] fork.

This (for me) shows the effect in about 1 out of three attempts (there 
is some randomness to it because it's competing with the UI process).

> The problem is definitely still there, patching the debugger just causes 
> it to happen much less frequently.

If you see it happen you should immediately make a snapshot of the 
processes you have running and see if any of them might do the 
equivalent of what you see above. It might also be triggered by 
overrides in packages you use.

Cheers,
   - Andreas



More information about the Squeak-dev mailing list