On 12/12/2012 01:12 PM, Stephan Bergmann wrote:
Now, the interesting thing is that the Linux-specific CreateSalInstance
(called from ImplSVMain -> InitVCL before calling the application's Main
in ImplSVMain) explicitly locks the solar mutex thanks to
<http://cgit.freedesktop.org/libreoffice/core/commit/?id=852574f46f686a936a1b267e5780ca17d0f0d5ab>
"INTEGRATION: CWS ause0c2 (1.3.18); FILE MERGED: 2004/03/12 15:25:43 hjs
1.3.18.1: #115868# anti freeze," while all the other variants of
CreateSalInstance apparently do not (incl. the one in
vcl/headless/headlessinst.cxx that is relevant when configured
--enable-headless, as is the case for this mail thread).  That means
that all of desktop::Desktop::Main -> Application::Execute ->
Application::Yield runs with the solar mutex locked on Linux (sans
--enable-headless configuration) and with the solar mutex unlocked
everywhere else.

The commit message for 852574f46f686a936a1b267e5780ca17d0f0d5ab is
unfortunately rather unhelpful, but temporarily reverting it and doing
"make check" on a Linux box starts to produce crashes within
desktop::Desktop::Main -> Application::Execute -> Application::Yield ->
..., in code that apparently expects the solar mutex to be locked.

Now, on yet closer inspection, it is only the versions of CreateSalInstance for Android and --enable-headless (vcl/android/androidinst.cxx, vcl/headless/headlessinst.cxx, both based on SvpSalInstance) that do not lock the solar mutex -- while curiously enough both release it in DestroySalInstance. And trying an --enable-headless "make check" build soon runs into tests failing with soffice.bin instances crashing within desktop::Desktop::Main -> Application::Execute -> Application::Yield, in code that apparently expects the solar mutex to be locked.

So <http://cgit.freedesktop.org/libreoffice/core/commit/?id=5613bcfc6dc0ea45f8baeef9a8469a77c31365f5> "Consistently acquire solar mutex in all CreateSalInstance variants" appears to be what was missing.

Stephan
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to