[Libreoffice-commits] core.git: Changes to 'private/jmux/new-vcl-scheduler+win+fixes'
Jan-Marek Glogowski
glogow at fbihome.de
Wed Nov 23 11:03:38 UTC 2016
New branch 'private/jmux/new-vcl-scheduler+win+fixes' available with the following commits:
commit 6a1c1556bfdd1c1c65524006f221782d97f9c67d
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sat Jan 2 02:06:36 2016 +0100
dummy bookmark test
Change-Id: Ief362b4d614d71dfdf1bf4fc9e0dc8ae13ecd8c6
commit b6cf44effd948dfad0a8ea7c98c6ca7536e5b994
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Mon Jan 25 14:23:08 2016 +0100
Helper to validate URLs with system path fallback
A lot of places work with URLs but need to handle system path input
gracefully. Refactors and removes some duplicated code.
Change-Id: I164b124a074f7faa2f802bcd5609ebadab769aa4
commit 0fc911ae3738701a3240aa66d8b1712b471acbf1
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Fri Jan 8 11:18:00 2016 +0100
MM don't generate documents for invalid emails
If we don't have a valid mail address, there is no point merging a
document.
We also have to account differently for documents with fields of
type RES_DBNEXTSETFLD or RES_DBNUMSETFLD, as these would advance
the document cursor for multiple rows.
Sadly there is currently no way to inform the user of bad email
entries. As before these entries are just skipped.
Change-Id: I2b02174e173b8b721c7394d47febfefd3b3066e9
commit d52f5fe826b9c3bb43e0d6b6b824ed054445f8b2
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sun Oct 30 10:10:49 2016 +0100
Move ImplFrameData initialization into constructor
Change-Id: Id918ae46ed521fca5675845b2eb9cd26a8c7ebbb
commit 2e6a3587478e9cf6c3ea8f1a140bec48ed64d234
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sun Oct 16 21:04:59 2016 +0000
Fix MouseOver handling for various controls
This fixes the mouse over handling for Edit, ComboBox,
ImplSmallBorderWindowView and ListBox.
Change-Id: I6d3e91f786a4e43ca308f55baa9987db6d78949c
commit dbfe110ec646d6e100983825a211b5e4d3a28bef
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sun Oct 16 19:57:29 2016 +0000
Change compound OnMouseOver handling
This sends Notify events to the compound window, if the mouse
enters to any of the childrens, or leaves from any of the children
outside of the compound window / control.
Additionally all leave events from the compound window are
dropped, if the mouse moves to a child control.
This allows us to skip a lot of redraws AKA flickers for border
focus indicating themes (mbNoFocusRects).
Change-Id: Ibc03226b1cb86443b62a688d3b98f17811b3db61
commit e4ad22632497738bddfbfaca3c03150c7c30c55f
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Oct 12 19:44:08 2016 +0200
Drop ListBox include from ComboBox header
ComboBox just uses ListBox internally
Change-Id: Ieed279160db1c9918bd9f3e37102b59ea62f0581
commit b2c97dc03ad03b7205e1839eddba2a5ca044f77e
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sun Oct 9 17:14:54 2016 +0000
KDE4 fix wrong fallthrough
Was found and marked in 03f440c379a03500a40cc34097c68a150d7a226d,
but is definitly wrong.
Change-Id: I6d04814fb8f25a92dfaf96d8face855315cc0208
commit c350066ec8128cffaedafcc97185b3385f19a463
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sun Oct 9 16:32:04 2016 +0000
Assume pWin exists while drawing
Change-Id: Id392b7c42d6470230a4d9f627704286e532dce3e
commit a4cbc57e57f234e2ec020f4ddf92288467e9ad22
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sun Oct 9 16:35:57 2016 +0000
Fix focus and rollover for vcl::ListBox
Change-Id: I4fffd086a38b54c673a199ea0603d25ca54aacd1
commit 17d49c8fe07ab5cdff3115d30daa1e5689288d47
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sun Oct 9 16:34:54 2016 +0000
KDE4 use correct ComboBox frame pixel metric
Change-Id: I03fa5489ffc5cd5bb386bb321519c61058db4fda
commit d612f65e37ca41cb8b131decae46c10acf84c9ee
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sun Oct 9 17:54:22 2016 +0200
KDE4 rely on style()->pixelMetric for frame width
Change-Id: I7a1e89c0c058bab0b6665e2b96b22251dcb51f4f
commit 3e85abfd9501b9008b8ac39ecbaff22ab81e7a5c
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sun Oct 9 10:50:44 2016 +0000
Update duplicated / outdated NWS documentation
Removes the old, copied NWS documentation blocks from all native
implementations and update the parent SalGraphics documentation.
Change-Id: I0eff8ea0987c5c841e1b023340b1c3787c09e2ca
commit bab4789529bb09c05fa351061ccc2137e4a05332
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sat Oct 8 14:51:32 2016 +0000
Fix metric spinbox tool item size
Instead of guessing, use the CalcMinimumSize(), which also knows
about theming.
Change-Id: I747571b48c81166d11d03f99ab564b1a25165ef3
commit cc3fe5168890da1e9d6414acd093817fd36dea81
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sat Oct 8 07:03:28 2016 +0200
tdf#78924 KDE4 drop special Combobox code
At least not needed with breeze KDE4 theme.
Change-Id: I71a05c395d04a6f19c3bcd681450318831b0c29f
commit b902d6e9f07ae6bc77a47ac627532ae67869a0b7
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sat Oct 8 07:01:13 2016 +0200
KDE4 add frame to Spinbox and enable buttons...
... and don't claim to support all parts per default.
Change-Id: I7a8e0774b4573bf755737bc1adebe19a774736c9
commit a630930fce0e78bc95a4bb3b5091bc1fe7c87ad6
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sat Oct 8 06:56:07 2016 +0200
KDE4 fix edit box borders
When recalculating the native window frame borders, calculate
using already existing window borders. Otherwise the KDE edit
box results in an unlimited recursion for increasing the
bounding rects, if the control doesn't fit.
Change-Id: I45e51e4796b06097ca537c656f004133dfacd033
commit 8a1db2af660d716534612f720ff96f2bf7e99bd8
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Fri Oct 7 17:49:18 2016 +0000
KDE4 set shadow colors
These are used to paint Writers ruler text and marks.
Makes both readable with disabled and inactive text colors.
Change-Id: I39766d623164230a7379623c16e0463cbaaf0af8
commit 6e24e4fb6efff2a24a49a508b5ffcceab2abaafa
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Tue Oct 4 10:13:24 2016 +0000
tdf#102010 Never overwrite MM files via UNO
Fixes the regression introduced by
commit e637b6743a506ef74c93ccbe15ab6642f3baa34f
This commit removed the crazy bSubjectIsFilename handling,
where I didn't understood the case of bSubjectIsFilename
and a user supplied prefix.
Mail merge to files never overwrites an existing document,
but there is the special case, when a user selects a target
filename in the MM dialog for single file MM.
Should be fixed by a successive commmit, reverting this and
removing an existing file before starting the MM job.
Change-Id: Idda487023e6984de9c1e701fc088a6b7f92e9847
commit 5392361339197f0b43c0f69bb83a6362db5794c9
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Mon Oct 3 21:51:56 2016 +0200
MM allow easier manipulation of MM test arguments
Keep the beans::NamedValue vector around and convert it to a
uno::Sequence just before executing the mail merge job.
Change-Id: Ib2b4863337af20fb4423cc1b4ea4223d66d63ae5
commit 02da091df4176b1cae80a5d8ca6b91e608c84452
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Fri Sep 30 23:19:48 2016 +0200
Fix variable scope and better code readability
Change-Id: Icce8bc0c1031ad0d1b53fa7389e1a75f16e62972
commit f961b6f8896f4b6182cdde076c5b3540e9aeb2a4
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Fri Sep 30 23:18:30 2016 +0200
KDE4 implement native drag handlers
Change-Id: I3d6a1696b8278066b005c1983d226cc67381ba95
commit 6b7483565bef90f974055d98ae240e777183f621
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Fri Sep 30 23:15:26 2016 +0200
tdf#127591 Drop toolbar popup window background
Just rely on the default window backround.
Change-Id: I8aa7a2b05ac2521b872290d508c0ce5fdaf83bae
commit ce446d527c80857b4cf9a29e53e94c53af8eb591
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Fri Sep 30 23:09:05 2016 +0200
Unify drag handles for toolboxes
The custom shape popup toolbars used their own drawing code for
the drag handle. This was dropped in favour of the default toolbox
drag handle code.
This also drops the drag highlighting in favour of a move mouse
cursor as the drag indicator. The drag handle is currently always
drawn on the top, like a window title.
Change-Id: I08cbf715f1e240c2eb6d9a61fad2b705f9bd8014
commit 00662a1a77e659bd5ef494f76274a374f1c2c05f
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sun May 1 10:47:04 2016 +0000
rscpp: make previous FILE_LOCAL functions static
This just move the declaration from the shared header to the
corresponding cpp files to make them static.
Change-Id: I4aed6e23a90d42114d815205db2b741080739ac1
commit 0146fede904a264ca7427e930b3c0c80ca455ca5
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Fri Apr 22 04:48:08 2016 +0200
Disable font dependent tests when missing fonts
A (very) few tests depend on correct MS metric compatible fonts,
like Calibri, Arial and Times New Roman, and fail if these are
substituted with incompatible fonts. Disable failing asserts, so
we'll at least test loading the documents.
Change-Id: I4d07ffa7cd0da17f1c6631641853779294426210
commit 359f7bfa7855adb06b3b87c748b7587ea1b0f4b9
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sun Oct 30 02:02:10 2016 +0100
Just wait for the Yield mutex in the timer callback
Probably this instantly deadlocks, but it's worth a shot ;-)
Change-Id: Ib46eb6dbf57f29c85ffdbd6492922020f7785d30
commit ef01dd28f87b86e61e1c909606601a383bd023ed
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sun Oct 30 00:14:18 2016 +0000
Simplify Windows system timer / LO event handling
The system timer is supposed to have the following constraints:
1. There is just one system timer, which drives LO event loop
2. The timer has to run in the main window thread
3. Messages are processed in order, so there is no real need for
calling SendMessageW instead of PostMessageW
4. LO event loop is supposed to be processed in the main window
thread with the Solar mutex acquired
5. The system timer is a single-shot timer
6. The only one stopping the system timer is the scheduler, either
when without tasks to process, or on VCL shutdown
Following these constraints, we can remove quite a bit of timer
handling code, which simplifies its handling.
Drop the 16bit MAX duration limit, as CreateTimerQueueTimer uses
a DWORD for the DueTime parameter, which is always UINT32.
CreateTimerQueueTimer already sets the period to 0, which makes it
a one-shot timer, but there is also the WT_EXECUTEONLYONCE, which
enforces the Period parameter to be 0.
Change-Id: I549142394334bdc098f053b42f222b23cf4fcecd
commit 3a4dff7070d7c355dea2d9d5f1d1de6cac88fdd2
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sat Oct 29 12:00:08 2016 +0200
Unify deferred message handling
Moves the common code into ProcessOrDeferMessage.
All callers (try to) aquire the mutex before getting the
WinSalFrame pointer, except for ImplHandleDeferredPaintMsg.
This was probably an oversight, so this reverses the order in this
function, so the GetWindowPtr is now always protected by the Solar
mutex.
Change-Id: Icb8f34f7e8716f0faa90a95903b1681f7489aed2
commit 994f7a01b12157fcc5f72fc425afdf08d4cafefc
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sat Oct 29 02:36:46 2016 +0200
Change SAL_MSG_DEFERREDTIMER to unique number
When introduced in commit 0bf4645736af9f3a8d8b91b2a9c0af3ec5404cf9,
SAL_MSG_POSTTIMER got the same id then SALOBJ_MSG_DEFERREDFOCUS just
a few lines below, so change the id from 161 to the consecutive
SAL_MSG_* id 146.
Change-Id: I14ec79d18d7ddb84b4c33bcfddd6352890441581
commit dc3aebfbe4117740563dd4196bff4f9a386a9e81
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sat Oct 29 02:29:43 2016 +0200
Rename POST messages to DEFERRED
POST indicates a message is processed after the original message.
While this is semantically correct, these messages are used to defer
the processing of a message AKA postponed, until we acquire the
Yield mutex in the main thread.
While at it rename POSTFOCUS to DEFERREDSETFOCUS, as this defers
the WM_SETFOCUS message.
Change-Id: I66669e1a1ad807049232476414ac9e2fd4e5cb47
commit 8ee097f5a92929eb7a61cdcc0357a3f21a689607
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sat Oct 29 02:11:32 2016 +0200
Cleanup paint message handling
Makes PAINT handling function use the POSTPAINT handling
function and unifies the locking behaviour, so we now check
the frame before trying to aquire the lock in both functions.
Change-Id: Ia6bac6e24d95e680830c5405f0ab34cbed6e9688
commit 112e83f0ebaf0336c0b9304a9f5eb7288f2f4575
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.
Change-Id: I498a73fd02d5fb6f5d7e9f742f3bce972de9b1f9
commit add948ca770ad8673e686b2e3f240710bfd01b28
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Mon Nov 14 09:31:59 2016 +0100
Move SchedulerPriority to its own header
Just temporary while shuffling priorities, so we won't recompile
almost all LO for changes in the enum.
Change-Id: Ibdf39679133b1180ee01dc0af46f321f470bdaad
commit 204e610720c5f66f8f616be5d7676fa0e1be6ff0
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Thu Nov 10 18:45:34 2016 +0000
fixup some SAL_INFO
Change-Id: I34d73a267ebb151ed0125f5e4d288dfec5734524
commit ae8f663ed862c2beec6d0e45bc64b2661d375b98
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Tue Nov 22 10:55:43 2016 +0100
SVP don't add 500 microseconds to timeouts
The original code creates a short, unneeded busy loop (in case of
ProcessAllPendingEvents) or even sleeps in case of normal yield,
instead of instantly processing pending idles, even if we timeout
for a 0ms sleep.
Now it's possible to drop the additional HasPendingEvents() check,
as this was the reason the SVP yield didn't instantly process Idles
when "sleeping" 0ms.
Change-Id: I384eb0e2a4fbe618056c99fc42a9fc177a183a8b
commit 2b8346ac0a6b84667a72331a38a4531a92ab5a9f
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sun Nov 13 06:13:22 2016 +0100
GTK simplifiy system timer implementation
Instead of implementing an own GSource, this implements the glib
based system timer using the g_timeout_source_new() function.
It removes the vector of GtkSalTimer and changes the remeining
timer to be single-shot, just like the Windows and KDE platforms.
Change-Id: Iea40a6284bdc5c121235af5a6079a92a679391ca
commit d4d5f102ec9486fc48487a55f4d5f0375814cca1
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Thu Nov 10 18:16:49 2016 +0000
KDE4 run timeout via event queue
Change-Id: I0b77e0c64fce04b20e82ba8bbf72b7a99b1339af
commit edd40f7d5d041c0d457f09571373643d4a931ebb
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Fri Nov 4 23:00:25 2016 +0100
Process system event loop before LO events
Always process system event queue before any outstanding LO events,
as this processes pending system timer events!
ProcessTaskScheduling will just schedule timer tasks to the system
timer, and processes pending Idles directly!
Change-Id: I24042d259deb2960e7bf957b938a8cb053dde2a5
commit c2f4d3739f614069e8adbb70080828bed9a8cb61
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Fri Oct 28 11:05:18 2016 +0200
Add VCL scheduler documentation
Change-Id: Id2476e39272f5e253c5edfce59e84b0e2902db82
commit 3a6392035021275e9b24e344b3351548a6f39181
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Fri Nov 4 15:05:19 2016 +0100
Start SalTimer before invoking task
The system timer has to be started before Invoke(), as the invoked
task may start a nested event loop, which would prevent starting
the needed single-shot timer.
This also merges the SchedulerData::Invoke() into
Scheduler::ProcessTaskScheduling, which removes the dependency of
SchedulerData to access any private Scheduler members.
Change-Id: Ibd7c7162e35b1a935791b2663bb028965f36683e
commit adb18e55b9beeb1972d24598a17bfa3d1153b138
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Nov 2 16:47:29 2016 +0100
Add VCL AutoTimer::Stop() test
Ensure we can stop a timer inside Invoke().
Change-Id: I6162b32b8d1cab8a017abc112feb4b31a9600d17
commit b4a977d82b42fee04ab21b27a34c99c21c033265
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Nov 2 16:43:02 2016 +0100
A sensible timer handling for Calc input
There is no need to destroy and recreate the timer object.
Simply stop and start the timer as required.
Change-Id: I2885fef8bdb90c379dc2e9b9caf986d250face5c
commit 5ab44f398599dfaaa0c97f53575c663991fa5bcf
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Tue Nov 1 09:32:55 2016 +0100
Revert "sfx2: ensure that no timers are running...
... after SfxApplication dies"
Also adds two asserts to check the VCL DeInit status in the
scheduler Init and DeInit functions.
This reverts commit 2e29a518b04250b5f9cc9d0d77da3df076834d60.
Change-Id: I447b520f8a54634e98deb70579efee47588fe28c
commit b976440979e2c2d1a45d5b6c556c4eae51c09b7e
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Mon Oct 31 22:50:21 2016 +0100
KDE4 change scheduler timer to be single-shot
Change-Id: I21a0a62bd0cd122e0da676579d2b2a93264acdd8
commit b3802d9b745c07915c92430fcfd9380d5a12f812
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sun Oct 30 14:30:57 2016 +0000
Add VCL scheduler mp-sc locking: invoke+stop
AKA multiple producers - single consumer.
While a task is invoked, prevent
1. freeing the invoked Scheduler object
2. detaching ImplSchedulerData from the Scheduler object
This effectively blocks inside the Dispose function until Invoke
has finished.
For self-deleting objects, you have to explicitly call the Dispose
function with the DisposePolicy::IgnoreInvoke.
Change-Id: I6d23561e4069d0e541751e70554a04901c1d17d7
commit 923ebe4cf041793606be40303a2ace23d161b38e
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sun Oct 30 00:03:34 2016 +0200
Add VCL scheduler mp-sc locking: add+rm
AKA multiple producers - single consumer.
While the consumer can process any task in the list, a producer
is just allowed to append a task (like a queue).
This patch implements protective locks for two situations:
* when changing the last element
* when changing the list of freed scheduler objects
Change-Id: Ibd398f660618cf351feb5ca5b0645f30327b48cd
commit 2069854178fcbcd2c493623ea72b1cd4f003a23a
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sun Oct 30 10:45:02 2016 +0100
Fix rate-limiting of the GUI layouting
Before starting the layout timer, check its activity, so we don't
reset the timer with every start.
Change-Id: I5355a117866e863a652f4d70862c2786fbc4b935
commit 56d7bb57c8e08892a6430604125e24a8d5dd3be6
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Sun Oct 23 14:01:45 2016 +0200
Reduce <vcl/scheduler.hxx> header scope
This includes <vcl/timer.hx> and <vcl/idle.hxx>.
Change-Id: Ia1d042db670bdd20ce82b45d8cd41bc0d2f56d5f
commit 42692e08ac5f9dd9a548b44470d19a4042f45b3a
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 2c5fdab87937666a6f08d7a60e366ebe8fecd557
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.
To implement a non-busy, suspendable Idle, this adds an AutoIdle
class, which is automatically re-scheduled after being processed.
It also adds a SwDocIdle, which isn't ready to schedule for busy
documents.
Change-Id: I185137ed3423ecaae0f7edb39018d26c4244d359
commit a6ac5c3e64b6878b1ab985ce44065361b813df3e
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Fri Oct 21 12:58:19 2016 +0200
KDE4 clang-lo:staticmethods
Change-Id: I4899a30f97f8433fd4d20b7d65cb3fbb6a06103f
commit 7f75c239ca292d8d1d3bca4899e2468607971d28
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Fri Oct 14 16:05:58 2016 +0200
Correctly handle nested task processing calls
If ProcessTaskScheduling is called to process tasks while inside
Invoke(), the assumptions about the list pointers in the parent
call will be void.
There would be two possible solutions:
1. Nested calls are forbidden to change the list, except for
adding tasks.
2. The parent call must be informed of the changes and update
the pointers.
Since we want to be able to remove processed tasks in nested calls,
we go with option 2, which has a slight overhead but won't exhaust
memory, because it can't release processed tasks.
Change-Id: I7a3910a9a4677988dff1d5a7648a67d66fb41056
commit 15dc40d11f3457e2179d9d9aea0cce245554d461
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Tue Sep 13 11:03:08 2016 +0200
Round-robin invoked auto tasks
Add some simple round-robin to the task processing, so equal
priority (auto) tasks won't always be scheduled, if there are
multiple tasks with the same priority.
Change-Id: If84496bff68aec42d0fa63c2b7e05c3202f67b2c
commit 13f067cdcbe8e44394ab46a810ce0e714d4be008
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Aug 10 12:33:21 2016 +0200
Add SAL_INFOs to dump the Scheduler handling
Debug area name is still "vcl.schedule".
Also adds some std::basic_ostream output formaters for Scheduler,
Timer and Idle classes.
Change-Id: Ia1eab69e76671bd33ce3324c5eb058e4e00dfdd2
commit 502473312e677c8a1a1f21ed0f2616eeaff030b0
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 5f134e1817b92e67b5018e80b6a450eab2bf2fe6
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Sep 14 13:48:02 2016 +0200
Change Idle to be a Timer subclass
Drops a lot of duplicated code and reflects the Scheduler
handling of "Idle"s in the source code.
Change-Id: I847592e92e86d15ab1cab168bf0e667322e48048
commit 5dd1edd2fa39c87af05d29b19c72ede06fe95e78
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Mon Sep 12 18:24:14 2016 +0200
Just run the LO event loop via system timers
Change-Id: Id8cd01bb6f0e88def029c4a3d97520f06a8ebdac
commit e1746867b3c46af025e7be9fc4429cdcbf3bc645
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
Change-Id: Ie88c2945acb066e312bab7d0f5b2f3b525fa1c4c
commit a85b3d392bd21e484fc3622d0a322659330d86c8
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.
Change-Id: I248c9b8acb7df026295d10f256871b9fc8d39c07
commit 8c8d3a8a64353ccc2e0d864acf34efedbbfb65ae
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 7b0c6e8f071c5f977af31c4f1b86aee03c3ff536
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 dbb99acf2e147b006b8e76cb501a2180633eeea7
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 ff84245e771240b8cded3d13c8999fff194d713d
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 6f4d8512bf526d01db8951a39c94e408ce0122cb
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 84f35097aa0c18fb314ccca019f67a6d666a96a7
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 c9702a73301676c57d826a07a1e74d0b8164d51f
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 a8478fdea5ebeded4dc580f70146cad527175a67
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 148ba587edb59738f357c1a0a1d5e53a207fa60d
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
More information about the Libreoffice-commits
mailing list