Hi Florian,

On Wed, 2014-09-24 at 14:18 +0200, Florian Haftmann wrote:
> From a bird's-eye perspective, this would IMHOP consist of the following
> tasks:

        I love your breakdown =)

> * Identify the hot-sport where events are announced.

        Sure - so, this is a matter of looking for finding / documenting all
'Timer' sub-classes.

> * Formally extend this interface with a priority parameter with not-yet
> a meaning.

        Sure - so, what I'd do is create a 'Idle' class - initially derived
from Timer (I guess), and start to add a series of #defines or similar
to give each an integer priority [ leaving some nice spaces ]. Then
inside the Timer class map that back to the ~awful '35ms is low
priority' '50ms is after that' etc. ;-)

        Of course, -some- things we may actually want to do inside a timer -
eg. blinking the cursor =) for this we really want a 'TimerSeconds'
sub-class that moves the timeouts to a second boundary: this is
important for reducing power-use: so the CPU wakes up once per second
sharp on the transition, and does as much work as possible before going
back to sleep =) [ we're missing that concept sadly - for now just
stub / wrap that ]. Our cursor should blink either once-per-second or
every half-second I think to get the benefit there.

        Having done that I hope we are back where we started - but we have a
nice series of priorities for these various things.

> Any comments or hints?  Otherwise I guess the first item is the one to
> start with.

        I think we missed some unit tests =) it'd be great to create some of
these too particularly for Timers - which we've just re-worked on
Windows to make them might higher resolution.

        Personally, I'd do the API work as described above first - then take a
long hard look at it =) before starting to work on the implementations
of prioritized idle handlers in the backends. Of course - we can detect
if the backend can do the priority foo (should be easy for glib users
eg.) and if not use the fall-back 'orrible hard-coded times.

        Perhaps that gives a good, incremental path to go so commits can go to
master, and we can keep everything working ?

        Anyhow - thanks for the investigation, a good plan;

        HTH,

                Michael.

-- 
 michael.me...@collabora.com  <><, Pseudo Engineer, itinerant idiot

_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to