New branch 'feature/new-vcl-scheduler' available with the following commits:
commit 7bf8afcf2eb37c7c0c43bcae077a9f189a7e0f84
Author: Jan-Marek Glogowski <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@fbihome.de>
Date:   Mon Sep 12 11:54:51 2016 +0200

    Fix Ubuntu '--as-needed' build
    
    Change-Id: I92378dae4a515a587c897fff83b15d8e836b0aa2

_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to