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 dodiff --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 [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice
