[Libreoffice-commits] core.git: Changes to 'private/jmux/scheduler-fixes'
Jan-Marek Glogowski
glogow at fbihome.de
Tue Aug 15 07:57:14 UTC 2017
New branch 'private/jmux/scheduler-fixes' available with the following commits:
commit 05c35e942ba86f388d6cd0eed7ea7abe06215a1b
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Tue Aug 15 09:03:49 2017 +0200
Abort on critical Scheduler problems
There is not much sense in trying to continue without the main
lock. An other aspect are tasks with uncaught exceptions, which
must not happen. In both cases simply abort.
Change-Id: I4d52a6ef0526a1e46b64f9f3a6e0cc1a718618cc
commit efef0a609912287296fee173ec14e82f9c77ce71
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Tue Aug 15 09:02:16 2017 +0200
SVP always drain the wakeup pipe
Even when we have a lot of idle events, the pipe gets filled,
so just drain it on every run.
Change-Id: I7b6366b2649133b63138dc77fe51508404132890
commit 365bef06c5d909f72a2056e5923ee517f61cb55b
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Tue Aug 15 09:19:37 2017 +0200
tdf#99784 update Scheduler documentation
Reflect special handling in the OSX backend.
Change-Id: I6493ba6b6cf1c69f9fafc7ab583c430d72f73247
commit 5a18c89615b25af1cd7ea1de52f5652616fbf56a
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Tue Aug 15 08:23:31 2017 +0200
tdf#99784 OSX fix painting on resize
While resizing MacOS suspends the NSDefaultRunLoopMode. So in this
caae we can't post to the system event loop, but must use timers
to restart ourself.
Since the timer itself is scheduled on the NSEventTrackingRunLoopMode
it' also triggers on resize events.
There is still some minor glitch: when resizing too fast some part
of LibreOffice isn't painted, while the left mouse button is down.
Since there isn't any layouting triggered by the mouse up, there has
to be an other inconsistency.
Change-Id: I3ccba78bd23ec8526f21e7b93b027f3d3279f901
commit 12cd775011b78739f2d178d54b67d289b9b1299d
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Tue Aug 8 15:03:37 2017 +0200
tdf#99784 OSX run GUI stuff in the main thread
The extension manager start dialogs from it's own thread. But the
OSX backend currently doesn't defer these calls to the main thread.
This implements the deference using dispatch_sync.
Since dispatch_sync can't return any values, we have to use a
thread-id based map to transfer the return values from the main
thread to the callers.
The implementation uses macros, so it can rely on guard objects.
Change-Id: Id8977991e3eda91da27c23d8021e028d4f4cefe5
commit 7e8525484c85b8af053ce0e750b9be8532e9b58c
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Aug 9 17:38:46 2017 +0200
OSX dispatch user events via main loop
Otherwise we deadlock when dispatching ChangeRequestQueueProcessor events
from Java unit tests / UNO.
Change-Id: I2e9142650f5de83f0f4f382d90866e6d89f4eec8
commit fcb875539fbfe35a07d08b0c1fff8b41d81621b8
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Tue Aug 15 08:20:18 2017 +0200
Add (DY)LD_LIBRARY_PATH to environment output
Change-Id: I53604afa0c7f31f4eb7eed29793a49f7a1e037aa
commit 8facbedc4993190329c1144e3032447a9201a29a
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Tue Aug 15 08:05:51 2017 +0200
Optionally release one or all yield locks
Adds an additional boolean parameter to ReleaseYieldMutex.
In theory nobody should depend on the plain mutex.
Change-Id: If7fa108067e6c6b91d14f04df22984021649711f
commit 230a47f843b2d7a99d0fbd4e88e923046f549a14
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Tue Aug 15 07:52:12 2017 +0200
Really run the layouter every 50ms
By Start()-ing the Idle, it's always reset, so with fast
resizes you could actually postpone layouting indefinitly.
Change-Id: Ie90b6f3f378ee8d163f621fce51280e09c826f14
commit dd24747a27950b4146d4e46b466d543f609c9f63
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Wed Aug 9 17:48:48 2017 +0200
Remove 500ns offset from GetSystemTicks()
This doesn't make any sense. The orignal idea might have been to
somehow be in the middle of 1ms, for whatever reason.
And it completely breaks, if we want to sleep 0ms.
Change-Id: I525b70c016876a96aa17edefe8c076b122ee2527
commit 13f1c6abe9825c50c7a0aeda2b775c8f9a6a6884
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Tue Aug 8 15:02:52 2017 +0200
The scheduler timer runs without SolarMutex
The backend is resposible to correctly start the timer.
Otherwise you can't start new Tasks without the SolarMutex.
Change-Id: I4e066fceb513d0de90b58854baf3e45f2b8ff25b
commit 9330ae5d596ff3e759b8bd73e6a185b412e90ed1
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Mon Aug 7 21:10:11 2017 +0200
Don't poll the extension install progress bar
Just start the Idle, if actually something changed.
Quite probably we shouldn't rely on an Idle at all, but this
fixes the busy loop while installing an extension waiting in
a confirmation dialog.
Change-Id: I3abbe2eb6651ce9320ef6e4d9c5251a23ab87216
commit d16883363312ea69823b55228df41ff48f26a29c
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Fri Jul 28 17:13:20 2017 +0200
WIP Assert active Tasks on scheduler DeInit
This shuts down the VCL scheduler later in the DeInitVCL call and
asserts active pending tasks, as these will never be processed
after shutdown.
There is currently a TODO whitelist, so the unit tests still pass
but probably most of these should be fixed. No task in the list
looks critical - all seem to do some idle / cleanup work.
This also processes all the Idles before shutdown. All seem to be
of type sfx::SfxItemDisruptor_Impl.
Change-Id: I9cc484a525cc2bacd54c4f271f86997517393e92
commit 3303ae59619b5cd2e6a6fca3cc27496d93d73790
Author: Jan-Marek Glogowski <glogow at fbihome.de>
Date: Tue Aug 15 08:42:56 2017 +0200
Get system thread ID from LOs own identifier
Stores the system TID for Linux and MacOS.
On Windows the internal TID is already the system TID.
Change-Id: I18f822c3ceb82c7655405cda4b8e2c2ef0211207
More information about the Libreoffice-commits
mailing list