summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bridges/source/remote/urp/urp_job.cxx20
1 files changed, 12 insertions, 8 deletions
diff --git a/bridges/source/remote/urp/urp_job.cxx b/bridges/source/remote/urp/urp_job.cxx
index c2895894ce2c..92ae096db316 100644
--- a/bridges/source/remote/urp/urp_job.cxx
+++ b/bridges/source/remote/urp/urp_job.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: urp_job.cxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: jbu $ $Date: 2000-11-28 14:42:38 $
+ * last change: $Author: jbu $ $Date: 2001-03-16 13:30:15 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -525,6 +525,16 @@ namespace bridges_urp
&(pSJE->m_pException) );
}
}
+ if( pSJE->m_pRemoteI )
+ {
+ /**
+ Do the release here, in case of ForceSynchronous=1, calls
+ originated by the destructor of an UNO object must be sent BEFORE the
+ release returns ( otherwise we don't own the thread anymore ! )
+ */
+ pSJE->m_pRemoteI->release( pSJE->m_pRemoteI );
+ pSJE->m_pRemoteI = 0;
+ }
// now destruct parameters and marshal replies
// Note : when call is synchron => m_nCalls == 1
@@ -645,12 +655,6 @@ namespace bridges_urp
}
#endif
- if( pSJE->m_pRemoteI )
- {
- pSJE->m_pRemoteI->release( pSJE->m_pRemoteI );
- pSJE->m_pRemoteI = 0;
- }
-
m_pBridgeImpl->m_nMarshaledMessages ++;
// put it on the wire
m_pBridgeImpl->m_pWriter->touch( sal_True );