New branch 'private/jmux/scheduler-fixes' available with the following commits: commit 05c35e942ba86f388d6cd0eed7ea7abe06215a1b Author: Jan-Marek Glogowski <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 <glo...@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 _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits