summaryrefslogtreecommitdiff
path: root/vcl/inc/schedulerimpl.hxx
AgeCommit message (Collapse)Author
2019-03-14Fix scheduled Task priority change handlingJan-Marek Glogowski
If a task is still in the scheduler priority queue and its priority is changed, it won't be moved into the correct queue. We have to track the priority of the scheduled task, so we can warn the developer to fix the code and actually handle re-start correctly. Since we don't want to traverse the whole Scheduler queues on priority change (which sometimes get very long) to remove the wrong data item, we'll just invalidate it, if a priority change is detected. This also reverts commit d24b264c4a47 ("vcl opengl: avoid task priority warning on cursor blink"), which tried to avoid the warning, which was just half right and independent of the broken priority change handling. LO doesn't change priorities of scheduled tasks normally, so that bug didn't turn out to have much impact, I guess. Change-Id: I6e46b518a7c3532047c619c013bd8597f73ed7a6 Reviewed-on: https://gerrit.libreoffice.org/69249 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2017-10-23loplugin:includeform: vclStephan Bergmann
Change-Id: Id7dea3917740aaf4db8dada5e2bea6e117d714ea
2017-08-09osl::Mutex::acquire can effectively only fail upon programming errorsStephan Bergmann
...so simplify the design a bit here (and there was no meaningful failure- handling code, anyway) Change-Id: I34bb3a7b5fc56f2213a4d22438f0733e1b65fe4b
2017-08-04Implement VCL Scheduler lockingJan-Marek Glogowski
Replces the SolarMutex scheduler locking by using a distinct mutex included in the scheduler context. It should also get rid of the spurious assert( !bAniIdle ) failures, as the test now holds the Scheduler lock for the whole time. This includes reverting the additional scheduler de-init from commit 2e29a518b04250b5f9cc9d0d77da3df076834d60, as I couldn't reproduce the bug running the unit test in valgrind. Change-Id: If33f815fe86c8f82175e96adceb1084b925319dd Reviewed-on: https://gerrit.libreoffice.org/40497 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2017-07-13Remove duplicated delete informationJan-Marek Glogowski
Task::mbActive already stores the inverse information of ImplSchedulerData::mbDelete, so we can drop the latter one. Change-Id: I57f8c23ca1eebdeed780a644c83fcbeb9b92cd66
2017-07-13Refactor Scheduler by merging functionsJan-Marek Glogowski
Merges ImplSchedulerData::Invoke() into ProcessTaskScheduling() and removes indention levels in CalculateMinimumTimeout by using goto. This is straight forward. Change-Id: I740b97315df92f8b979089e7e22058e628f95bc0
2017-07-13Move scheduler task into its own headerJan-Marek Glogowski
Change-Id: I54534787b8cfa4c47dc09dde9c38a7893df9d367