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
|