[Libreoffice-commits] core.git: Changes to 'feature/new-vcl-scheduler'
Jan-Marek Glogowski
glogow at fbihome.de
Fri Sep 16 21:21:52 UTC 2016
New branch 'feature/new-vcl-scheduler' available with the following commits:
commit 7bf8afcf2eb37c7c0c43bcae077a9f189a7e0f84
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Tue Sep 13 11:03:08 2016 +0200
Round-robin invoked / started tasks
And some simple round-robin to the task processing, so equal
priority (auto) tasks won't always be scheduled, if there are
multiple with the same priority.
Currently breaks LO, which indicates dependencies in the same
priority class, which must not exist!
Change-Id: If84496bff68aec42d0fa63c2b7e05c3202f67b2c
commit b2e123f9a22928d2e0cea8ceb4ae75ff5102c6dc
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Aug 10 12:33:21 2016 +0200
Readd SAL_INFOs to dump the Scheduler handling
Debug area name is "vcl.schedule".
Conflicts:
include/sal/log-areas.dox
vcl/source/app/scheduler.cxx
Change-Id: Ia1eab69e76671bd33ce3324c5eb058e4e00dfdd2
commit f701ea310606611fd7b80eac53481365ca06218d
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Sep 14 18:17:18 2016 +0200
Don't poll busy documents via idle task
Creates a very busy idle-loop, for non-task work like mail merge.
Change-Id: If7be82e4675008f23e6f4f6be5c40df40a231a8b
commit a1ecb280872c5487615558f8d140a380ef3e0d36
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Sep 14 15:33:54 2016 +0200
Run Idle tasks immediatly
There is really no reason to wait a millisecond for an idle.
Change-Id: I7665d5f2e7d6ba3e01290a692bbc8e42c36b9986
commit 2798b797c9acec175bfdb658f63df2cd968e2d6e
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Sep 14 13:48:02 2016 +0200
Change Idle to be a actually a Timer subclass
Drops a lot of duplicated code and actually reflects the Scheduler
handling of "idle" in the source code.
Change-Id: I847592e92e86d15ab1cab168bf0e667322e48048
commit 102c41c2e429bee489334361536779aa298bc181
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Mon Sep 12 18:24:14 2016 +0200
Handle all main loop and task events
Change-Id: I75ed5a38b0e24966dafcfdd2ea4cb8afc93a8a0c
commit 5e4361e84607fc6d7623b31630505da7c934b945
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Aug 10 12:00:53 2016 +0200
Reorganize Scheduler priority classes
This is based on glibs classification of tasks, but while glib uses
an int for more fine grained priority, we stay with our enum.
1. Timers start with DEFAULT priority, which directly corresponds
with the previous HIGH priority
2. Idles start with DEFAULT_IDLE priority instead of the previous
HIGH priority, so idle default becomes "really run when idle".
As RESIZE and REPAINT are special, and the DEFAULTS are set, there
is just one primary decision for the programmer: should my idle
run before paint (AKA HIGH_IDLE)?
If we really need a more fine-grained classification, we can add it
later, or also switch to a real int. As a result, this drops many
classifications from the code and drastically changes behaviour,
AKA a mail merge from KDE is now as fast as Gtk+ again.
Conflicts:
cui/source/tabpages/macroass.cxx
desktop/source/deployment/gui/dp_gui_dialog2.cxx
include/vcl/scheduler.hxx
sc/source/core/tool/dbdata.cxx
sc/source/ui/formdlg/dwfunctr.cxx
sc/source/ui/miscdlgs/anyrefdg.cxx
sd/source/ui/dlg/dlgass.cxx
sd/source/ui/slideshow/slideshowimpl.cxx
svx/source/inc/eventhandler.hxx
svx/source/sdr/overlay/overlaymanagerbuffered.cxx
sw/source/uibase/docvw/srcedtw.cxx
sw/source/uibase/utlui/unotools.cxx
vcl/source/app/idle.cxx
vcl/source/app/scheduler.cxx
vcl/source/app/timer.cxx
Change-Id: I498a73fd02d5fb6f5d7e9f742f3bce972de9b1f9
commit c43ebd2dc563a8d3ebc90e4181b6f3eec5c02c23
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Tue Sep 13 12:20:45 2016 +0200
Don't wait in Yield with pending events
This re-introduces some functionality of commit
87199d3829257420429057336283c55be6ae7481
I'm not sure, if we really want to skip the wait on pendig events.
Change-Id: Ie88c2945acb066e312bab7d0f5b2f3b525fa1c4c
commit 71ce92d177a7f8c08c8051d0ef4f9e8ab0f00470
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sun Jul 31 17:31:07 2016 +0200
Just schedule tasks, if timeout has ellapsed
As the native main loop wakes up on new events and not just by
timer timeouts, make sure there is really an ellapsed event.
Probably we should just schedule events via the system timeout.
At least this will prevent expensive re-scheduling.
Conflicts:
vcl/source/app/scheduler.cxx
Change-Id: I248c9b8acb7df026295d10f256871b9fc8d39c07
commit 4255a5a4340bc7d106b976cfd2b805eda0295978
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Mon Sep 12 17:03:29 2016 +0200
Drop special idle handling
Idles are just instant, mainly low-priority timers.
So we'll just schedule by priority.
This basically also reverts the following commit:
commit 06d731428ef6cf93c7333e8228bfb6088853b52f
Change-Id: I446eaea0077f45a5b7daa0aa06dcb80010ac0bd5
commit a8ea3f9957aae08276be4368d4435beab7e2e124
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Thu Sep 8 06:55:30 2016 +0200
Revert all SalYieldResult changes => bool
All we want to know is, if any event was processed. Actually the
result was never indicating, if a timeout was processed at all.
Change-Id: Ia0b91b06dffb77af066f01838d8f9483523bf67d
commit 604b7d3ea4306fd4ba147a890d944de3478034b5
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sun Jul 31 16:35:49 2016 +0200
Don't update document stats for non-idle views
This functionality should be merged into the DocumentTimerManager,
which itself should run the different document idle tasks via
seperate jobs instead of a single idle, if they don't depend on
each other.
As a workaround, this checks for the idle status of the view and
won't run on busy documents.
The idle is also changed to a timer, which sleeps for busy views.
Change-Id: I185137ed3423ecaae0f7edb39018d26c4244d359
commit aee7cb1b3645abd9484071283a0330367b79031e
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sat Jul 30 20:56:01 2016 +0200
Reuse scheduled task data
Since scheduling is now done via existing ImplSchedulerData
objects, keep used objects around to save new and delete calls.
Change-Id: Id983f114438d2d8d05de698c7d068af360222d35
commit 435e21fe0330436e76e5e053d5d5d94df734a554
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Tue Sep 6 11:28:44 2016 +0200
Just walk the task list once per timeout
This merges ImplSchedulerData::GetMostImportantTask into
Scheduler::ProcessTaskScheduling and InitSystemTimer into
Scheduler::ImplStartTimer.
Walking can be optimized by sorting the list by the next expected
scheduling time, when the special idle handling is dropped.
Additionally one could implement per-priority queues to speed-up
the walk even more.
This basically reverts the following commits:
commit 10a451e97992ce42db3cefa3bffb883f310767c9
commit 87199d3829257420429057336283c55be6ae7481
commit 1bd5e8b73d863cad6e42ea9619fc471a0dd8d14b
commit 5bac7853a89b9b34d64334d6d77582c7cd79b4ee
commit d3cdd7efca82130c2c42e3062b5ab244461ce15c
Change-Id: Idfb698a6075e371bae7fa36d73ae88a2075cde01
commit 70c32da40347630d7d78ddb51c7c2ff890846103
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Tue Sep 6 10:44:05 2016 +0200
Convert bTimer => bIdle
All other places already refer to being Idle, so change the
Scheduler::ProcessTaskScheduling argument to bIdle and adapt
all other scheduler-related functions.
Change-Id: If5a605abbc3e620092127b65ada29f11215a0343
commit baeb99b53372e407126fd062ded2026b90190fda
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Tue Sep 6 08:27:08 2016 +0000
Always schedule with the same time
No need to always update the time - scheduling should be fast!
Change-Id: Ic4c01f5a5759ef4970f1385aab6ef93cd67f33b6
commit e7e76b8daa47e47e615bb6aa23c68f52725a8e12
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sat Jul 30 19:18:00 2016 +0200
Use mpSchedulerData for delete and active handling
We define an active task to have a Scheduler::mpSchedulerData
pointer. And if the ImplSchedulerData::mpScheduler pointer is
empty, we can delete the task when scheduling.
This simplifies the scheduling handling.
Change-Id: I7aaddea7f5171b66b7fa309363fc546f97dcb981
commit 37ea282e14f03e69b707efc6d0ed7bcba952374b
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Jul 20 10:54:30 2016 +0200
tdf#97087 GDB pretty print the Scheduler task list
In addition to the GDB pretty printer, this annotates a lot more
Timers and Idles.
Change-Id: I5b93fab02161b23bb753e65ef92643a04fb0789c
commit 1878d69b93f161a13736ef0cc6e7bef65a8764ef
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Jul 20 10:45:52 2016 +0200
Update Python six to version 1.10.0
Change-Id: If3d6c7c18ffc19da2a4ccc118aa2a2e658f4a719
commit de1616607ee78cd2d5023d9d464b48fe6e975c0e
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Mon Sep 12 11:54:51 2016 +0200
Fix Ubuntu '--as-needed' build
Change-Id: I92378dae4a515a587c897fff83b15d8e836b0aa2
More information about the Libreoffice-commits
mailing list