-
Dan Ellis authored
Detail: UpCall 6 is documented as accepting a pollword which can be scanned for being non zero to return control to the process requesting to sleep. This was not being used within the taskwindow module, there being a comment where it would have been used suggesting that this would give the taskwindow too high a priority. What this means is that if given a pollword that is already nonzero, the task would receive so many polls as to really make the desktop juddery. The solution is that if the pollword is non-zero on entry, Wimp_Null is unmasked rather than passing the pollword. This means that UpCall 6 can be used either as a yield, to say 'let other tasks have some CPU now' (by passing a pollword known to contain nonzero) or as sleep to say 'wake me up when the pollword becomes non zero, and don't consume any CPU time until then' (by passing a pollword that will only become nonzero upon the occurance of a specific event). Admin: Tested on RPC. Version 0.65. Tagged as 'TaskWindow-0_65'
b09c7ea0