WIP: Call Portable_Idle when idle.
Previously Wimp was calling entering power saving mode (low CPU speed and calling Portable_Idle) at the beginning during Wimp_Poll if the number of polls per second was high. This results in:
- Excessive CPU load due to not immediately calling
Portable_Idle
when appropriate. -
Wimp_Poll
heavy workloads being mistaken for idle. - When run in a pre-emptive multi-tasking environment, high CPU usage by other threads could cause RISC OS to waste CPU time.
Instead call the power saving routine when there is no event (including null polls) to return from Wimp_Poll
with, and call Portable_Idle
whenever there has been no interrupt since the last call to the power saving routine.
Does this change break CPU speed throttling?