Main-loop / idle handler bits ...

Michael Meeks michael.meeks at collabora.com
Sat Oct 18 12:57:51 PDT 2014


Hi guys,

	Just wondering how this is going =) I could really use an UNO method
that essentially processes all 'idle' handlers synchronously to finish
up all pending work - to help with some profiling tasks - but (of
course) to do that, we need some genuine 'idle' vs. 'timeout'
distinction.

	How is that coming along? I see lots of nice things in the wiki page
here:

https://wiki.documentfoundation.org/Development/LHM_LiMux#Priority_Main_Loop

On Wed, 2014-10-01 at 17:04 +0100, Michael Meeks wrote:
> 	Yep - a very helpful table there. I've asked to have that sorted by
> timeout not source-location; and to have all the UI related timeouts
> split to their own section.

	So - I did some thinking and mapped the timeouts to some sort of
descriptive priority names - something like this:

enum IdlePriority {
	VCL_IDLE_PRIORITY_HIGHEST, // 	-> 0ms
	VCL_IDLE_PRIORITY_HIGH, //      -> 1ms
	VCL_IDLE_PRIORITY_REPAINT //    -> 30ms
	VCL_IDLE_PRIORITY_RESIZE  //    -> 50ms
	VCL_IDLE_PRIORITY_MEDIUM //     -> 50ms
	VCL_IDLE_PRIORITY_LOW //        -> 100ms
	VCL_IDLE_PRIORITY_LOWER //      -> 200ms
	VCL_IDLE_PRIORITY_LOWEST //     -> 400ms
};

	we can rip/replace the 'ms' comments later of course. Then we would
need a patch something like the attached. Of course, worked through all
of the instances of idle handlers =) Patch is un-tested to avoid having
to trigger a rather slow re-build here; please do hack it about into
whatever form you like.

	Is it possible to extend that suitably ? when we have the code changed
around the place, and the problem isolated; we can start to prioritize
and avoid having these silly timeouts at all (I hope).

	Having said that, when we get to 400ms - I imagine this is a UI
interaction timeout - which prolly should stay at 400ms ;-) - it'd be
good to review those to see if they are UI / behaviour related - it'd
suck to suddenly have the double-click time be ~instant ;-)

	All the best,

		Michael.

-- 
 michael.meeks at collabora.com  <><, Pseudo Engineer, itinerant idiot
-------------- next part --------------
A non-text attachment was scrubbed...
Name: scratch-un-compiled-idle.patch
Type: text/x-patch
Size: 4688 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20141018/cf52f84e/attachment.bin>


More information about the LibreOffice mailing list