[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