Maryland Windows bug
chris at umcp-cs.UUCP
chris at umcp-cs.UUCP
Sun Nov 20 08:13:48 AEST 1983
There's a bug in the update optimization code in my windows package.
In disp.c, LastRedisplayPaused is tested, but never cleared; this can
lead to much CPU wastage and an amazing amount of performance degradation
when there are lots of windows on the screen.
There's a little section of code in Wrefresh () that looks like this:
if (ScreenGarbaged || LastRedisplayPaused) {
for (i = 1; i <= ScreenLength; i++)
WDclearline (i);
for (w = WinList; w; w = w -> w_next) {
if ((w -> w_status & WHIDDEN) == 0)
WDoDump (w);
}
}
It should look like this (one line added):
if (ScreenGarbaged || LastRedisplayPaused) {
LastRedisplayPaused = 0;
for (i = 1; i <= ScreenLength; i++)
WDclearline (i);
for (w = WinList; w; w = w -> w_next) {
if ((w -> w_status & WHIDDEN) == 0)
WDoDump (w);
}
}
I simply forgot to clear LastRedisplayPaused.
I'm afraid that by now my version numbers are hopelessly out of date
with those out on Usenet, so I can't tell you which version this is.
--
In-Real-Life: Chris Torek, Univ of MD Comp Sci
UUCP: {seismo,allegra,brl-bmd}!umcp-cs!chris
CSNet: chris at umcp-cs ARPA: chris.umcp-cs at CSNet-Relay
More information about the Comp.sources.unix
mailing list