https://bugs.freedesktop.org/show_bug.cgi?id=46129
--- Comment #7 from Stephan Bergmann <sberg...@redhat.com> 2012-02-15 14:12:45 PST --- Another thing that comes to mind is threadsafe statics. The thread that is completely within configmgr (apparently within configmgr::Components::WriteThread::run) calls __cxa_guard_acquire, i.e., comes across a local static variable (with non-trivial ctor), likely typeNames in writeNode (configmgr/source/writemodfile.cxx) or theLock in lock (configmgr/source/lock.cxx). The main thread is in the SwModule ctor, which it must reach via - SwModule::SwModule - SwDLL::SwDLL - (anonymous namespace)::SwDLLInstance::SwDLLInstance - rtl::Static<{anonymous}::SwDLLInstance, {anonymous}::theSwDLLInstance>::get(void) - SwGlobals::ensure [...] i.e., it also is within a local static ctor in rtl::Static::get (rtl/instance.hxx; thanks to HAVE_THREADSAFE_STATICS being generally enabled on Linux, cf. configure.in). Now, "Some C++ runtimes use a single lock for all static variables, which can cause deadlock in multi-threaded applications." (cf. configure.in; and e.g., Mac OS X is known to be affected by this problem). It is not entirely clear to me which Linux GCC versions are affected by this problem (recent versions are known to no longer have this defect). But the LO Linux installation sets available from <http://www.libreoffice.org/download/> are built with a rather old GCC toolchain (cf. comment 3 to bug 45696), and I do not know whether that might still exhibit this problem. (OOo is far more conservative wrt exploiting -fthreadsafe-static, i.e., it does not have the HAVE_THREADSAFE_STATICS optimizations in rtl/instance.hxx, so would not exhibit this problem.) -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. _______________________________________________ Libreoffice-bugs mailing list Libreoffice-bugs@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs