summaryrefslogtreecommitdiff
path: root/framework/source/dispatch
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@suse.com>2012-03-05 21:18:00 +0000
committerMichael Meeks <michael.meeks@suse.com>2012-03-05 22:32:21 +0000
commit5b2cb23c429e1be1099008473770c634ce96c969 (patch)
tree74a88064abb6402ef44abac85922a688ceaa5ca0 /framework/source/dispatch
parent3dcf3c07aaff2eec0379135ec605396b7002f6a7 (diff)
attempt fix of hang on base close, due to solarmutex deadlock on join
Diffstat (limited to 'framework/source/dispatch')
-rw-r--r--framework/source/dispatch/closedispatcher.cxx11
1 files changed, 9 insertions, 2 deletions
diff --git a/framework/source/dispatch/closedispatcher.cxx b/framework/source/dispatch/closedispatcher.cxx
index 01523d2e4f06..0b670eb7b501 100644
--- a/framework/source/dispatch/closedispatcher.cxx
+++ b/framework/source/dispatch/closedispatcher.cxx
@@ -268,6 +268,13 @@ void SAL_CALL CloseDispatcher::dispatchWithNotification(const css::util::URL&
*/
IMPL_LINK_NOARG(CloseDispatcher, impl_asyncCallback)
{
+ SolarMutexReleaser aReleaser;
+ doClose();
+ return 0;
+}
+
+void CloseDispatcher::doClose()
+{
try
{
@@ -296,7 +303,7 @@ IMPL_LINK_NOARG(CloseDispatcher, impl_asyncCallback)
// frame already dead ?!
// Nothing to do !
if (! xCloseFrame.is())
- return 0;
+ return;
sal_Bool bCloseFrame = sal_False;
sal_Bool bEstablishBackingMode = sal_False;
@@ -452,7 +459,7 @@ IMPL_LINK_NOARG(CloseDispatcher, impl_asyncCallback)
{
}
- return 0;
+ return;
}
//-----------------------------------------------