Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10 5/3/83; site umcp-cs.UUCP Path: utzoo!linus!philabs!seismo!rlgvax!cvl!umcp-cs!chris From: chris@umcp-cs.UUCP Newsgroups: net.sources Subject: Maryland Windows bug Message-ID: <3942@umcp-cs.UUCP> Date: Sat, 19-Nov-83 17:13:48 EST Article-I.D.: umcp-cs.3942 Posted: Sat Nov 19 17:13:48 1983 Date-Received: Sun, 20-Nov-83 04:21:34 EST Organization: Univ. of Maryland, Computer Science Dept. Lines: 36 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@umcp-cs ARPA: chris.umcp-cs@CSNet-Relay