Kaydet (Commit) 5b2cb23c authored tarafından Michael Meeks's avatar Michael Meeks

attempt fix of hang on base close, due to solarmutex deadlock on join

üst 3dcf3c07
...@@ -206,6 +206,7 @@ class CloseDispatcher : public css::lang::XTypeProvider ...@@ -206,6 +206,7 @@ class CloseDispatcher : public css::lang::XTypeProvider
during they call us ... during they call us ...
*/ */
DECL_LINK( impl_asyncCallback, void* ); DECL_LINK( impl_asyncCallback, void* );
void doClose();
//--------------------------------------- //---------------------------------------
/** @short prepare m_xCloseFrame so it should be closeable without problems. /** @short prepare m_xCloseFrame so it should be closeable without problems.
......
...@@ -267,6 +267,13 @@ void SAL_CALL CloseDispatcher::dispatchWithNotification(const css::util::URL& ...@@ -267,6 +267,13 @@ void SAL_CALL CloseDispatcher::dispatchWithNotification(const css::util::URL&
or shutdown the whole application. or shutdown the whole application.
*/ */
IMPL_LINK_NOARG(CloseDispatcher, impl_asyncCallback) IMPL_LINK_NOARG(CloseDispatcher, impl_asyncCallback)
{
SolarMutexReleaser aReleaser;
doClose();
return 0;
}
void CloseDispatcher::doClose()
{ {
try try
{ {
...@@ -296,7 +303,7 @@ IMPL_LINK_NOARG(CloseDispatcher, impl_asyncCallback) ...@@ -296,7 +303,7 @@ IMPL_LINK_NOARG(CloseDispatcher, impl_asyncCallback)
// frame already dead ?! // frame already dead ?!
// Nothing to do ! // Nothing to do !
if (! xCloseFrame.is()) if (! xCloseFrame.is())
return 0; return;
sal_Bool bCloseFrame = sal_False; sal_Bool bCloseFrame = sal_False;
sal_Bool bEstablishBackingMode = sal_False; sal_Bool bEstablishBackingMode = sal_False;
...@@ -452,7 +459,7 @@ IMPL_LINK_NOARG(CloseDispatcher, impl_asyncCallback) ...@@ -452,7 +459,7 @@ IMPL_LINK_NOARG(CloseDispatcher, impl_asyncCallback)
{ {
} }
return 0; return;
} }
//----------------------------------------------- //-----------------------------------------------
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment