Proposed fix for the Task::Start() hang on macOS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Bugzilla has a large number of open macOS hanging bugs like this one:

https://bugs.documentfoundation.org/show_bug.cgi?id=148435

I finally figured out what causing all these hangs in Task::Start() and posted a patch that hopefully should fix these bugs:

https://gerrit.libreoffice.org/c/core/+/144786

The fix is quite simple - switch the scheduler mutex from std::mutex to std::recursive_mutex - but I wanted other developers more familiar with the scheduler to take a look at my patch.

Specifically, I now know that macOS accessibility, screen changes, and maybe other events are dispatched while in Scheduler::CallbackTaskScheduling()'s call to Application::AnyInput() and those native events can call vcl code that, in turn, calls Task::Start().

So, here is my question for other developers: is Task::Start() safe to call in this particular scenario? My patch assumes it is but if it isn't, please let me know and will try to write a patch that skips or defers calls to Task::Start() if the scheduler mutex is already locked by the current thread.

Patrick



[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux