Deferred updates/slow redraw on OS X

Andreas Raab andreas.raab at gmx.de
Tue Jan 17 09:32:06 UTC 2006


 > Does this ring any bells for anyone?

There is a possibility that this is caused by a debugger popping up via 
a non-ui process. When this happens (which just so happened quite a 
number of times to me) you see all sorts of weirdo effects - starting 
from the debug button being in the wrong place, over redrawing stuff 
extremely slowly, up to bogus recursive errors. The cause? Interference 
of the debug process with the main Morphic UI process. The code in 
Debugger>>openOn:context:label:contents:fullView: is questionable - it 
forks off the debugger in a separate process but that process is not 
synchronized with Morphic. What that code probably *should* say is 
"WorldState addDeferredUIMessage:[...]" or somesuch. You might want to 
try this and see if it addresses your problem. I wouldn't be surprised 
if it did.

Cheers,
   - Andreas

Avi Bryant wrote:
> I've complained occasionally about the state my images can get into  
> where there are frequent excruciating waits while each SystemWindow  
> redraws itself many times slower than normal - these are often  
> triggered by debuggers popping up but I also have images where just  
> opening a new browser window can sometimes set it off.  (See http:// 
> macos.tuwien.ac.at:9009/482103917.asHtml for one discussion about the  
> problem).  I can now characterize it a little better, I think: what's  
> happening is that the deferred updates flag is getting set to false,  
> and yet the WorldState still has a canvas directly on the Display  
> form.  If I disable deferred updating, and nil out the canvas on  
> WorldState, then I'm pretty sure the problem goes away (and I don't  
> notice any particular change in UI responsiveness, though I realize  
> there must be some extra copying going on).
> 
> Does this ring any bells for anyone?
> 
> Avi
> 
> 




More information about the Squeak-dev mailing list