System Category List Update

Scott Wallace Scott.Wallace at disney.com
Fri Aug 4 18:14:54 UTC 2000


Hi, Eric.

When the window of a browser or inspector is activated, a check is 
made to ensure that the contents of the list-panes and the text-panes 
are still up-to-date; if not, they are updated at that time.  Check 
out CodeHolder. modelWakeUpIn:.

If you're in Morphic and if you have the "smartUpdating" preference 
set to true ("browsing" category of Preferences) then browsers and 
inspectors will periodically check to make sure their panes' contents 
are all up to date -- and this will work for inactive windows as well 
as active ones.  The check for up-to-dateness is triggered by 
SystemWindow's "step" method, which sends #stepIn: to the window's 
model.  Look at CodeHolder's #stepIn: method.

Once you get too many browsers and inspectors open concurrently, each 
eagerly checking to see if anything that has changed elsewhere that 
they should know about, it can start to drag down performance, and 
for this reason even people who habitually operate with 
"smartUpdating" turned on will sometimes need to turn it off.

Some people have advocated an explicit dependency-notification for 
this kind of thing.  Anyone contemplating implementing that here, 
however, would have to wrestle with the fact that many of the windows 
affected by a code change, for example, will be in other projects, 
and indeed some may reside currently only in swapped-out projects 
living off on an image segment currently on disk.

There's a simplicity and straightforwardness and inherent robustness 
in making actual views be themselves responsible for keeping 
themselves up to date in the face of an ever-changing outside world 
-- if you've got the compute power for it.

  -- Scott

At 12:35 PM -0500 8/4/00, Eric Arseneau wrote:
>Can anybody explain to me how the system category list in a browser under
>morphic is updated.  I see no dependencies, no chnged: signallin of any
>kind, yet it happens automagically.
>
>Remove a system category from one browser and all the others update.  How is
>this accomplished ?
>
>I've been looking and can't find anything.  This may be yet another sign of
>my own stupidity.  If that is the case then this gives the chance of some
>other brighter soul to illuminate me ;-)





More information about the Squeak-dev mailing list