On 02/15/2012 08:12 PM, Stephan Bergmann wrote:
* Thread 4 is executing a comphelper::AsyncEventNotifier. That class is
mentioned only in a few places
(dbaccess/source/core/dataaccess/documenteventnotifier.cxx,
extensions/source/propctrl/browserlistbox.cxx, and
forms/source/component/ListBox.{hxx,cxx}), so it looks reasonable to
assume that this one got spawned from dbaccess's
documenteventnotifier.cxx. And indeed, while the code there has a
provision for terminating the spawned thread, it fails to join with it.
So, here it might be enough to do
diff --git a/dbaccess/source/core/dataaccess/documenteventnotifier.cxx
b/dbaccess/source/core/dataaccess/documenteventnotifier.cxx
index 8d6b90d..24a46a2 100644
--- a/dbaccess/source/core/dataaccess/documenteventnotifier.cxx
+++ b/dbaccess/source/core/dataaccess/documenteventnotifier.cxx
@@ -165,6 +165,7 @@ namespace dbaccess
{
m_pEventBroadcaster->removeEventsForProcessor( this );
m_pEventBroadcaster->terminate();
+ m_pEventBroadcaster->join();
m_pEventBroadcaster = NULL;
}
-- unless that unearths any deadlocks.
Does not appear to generate deadlocks, at least not across a handful of
"make check" builds, so pushed this part now as
<http://cgit.freedesktop.org/libreoffice/core/commit/?id=81921bec4b81b7e3e87c24a6b4e3cfdd0cced47d>
"Make sure spawned thread is joined again."
Stephan
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice