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

Reply via email to