diff options
author | Michael Stahl <mstahl@redhat.com> | 2016-04-06 16:48:00 +0200 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2016-04-06 16:56:43 +0200 |
commit | 22fbbfe984f5da2592674f9260f5e4988b1341fe (patch) | |
tree | a7e017c52a6805933724ec930f850267d89fc645 | |
parent | 45f683a495411af8e059527c137af335ade79c37 (diff) |
Revert "Avoid deadlock when two threads call into Frame::close"
This reverts commit d2a59bb53ab6c6a364538bdc6928420d8cf72ba0.
Ironically causes a different deadlock, with a non-main thread holding
SolarMutex and blocked in SendMessage, and main thread dropping
SolarMutex now and blocking with SalYieldMutex::acquire() instead of
ImplSalYieldMutexAcquireWithWait().
vcllo.dll!SalYieldMutex::acquire() Line 139
vcllo.dll!SolarMutexGuard::SolarMutexGuard() Line 1477
tklo.dll!VCLXWindow::removeFocusListener(const com::sun::star::uno::Reference<com::sun::star::awt::XFocusListener> & rxListener) Line 1066
fwklo.dll!`anonymous namespace'::Frame::implts_stopWindowListening() Line 3042
fwklo.dll!`anonymous namespace'::Frame::setComponent(const com::sun::star::uno::Reference<com::sun::star::awt::XWindow> & xComponentWindow, const com::sun::star::uno::Reference<com::sun::star::frame::XController> & xController) Line 1508
fwklo.dll!`anonymous namespace'::Frame::close(unsigned char bDeliverOwnership) Line 1770
sfxlo.dll!SfxViewFrame::Exec_Impl(SfxRequest & rReq) Line 261
sfxlo.dll!SfxStubSfxViewFrameExec_Impl(SfxShell * pShell, SfxRequest & rReq) Line 706
sfxlo.dll!SfxShell::CallExec(void (SfxShell *, SfxRequest &) * pFunc, SfxRequest & rReq) Line 204
sfxlo.dll!SfxDispatcher::Call_Impl(SfxShell & rShell, const SfxSlot & rSlot, SfxRequest & rReq, bool bRecord) Line 265
sfxlo.dll!SfxDispatcher::PostMsgHandler(SfxRequest * pReq) Line 1088
sfxlo.dll!SfxDispatcher::LinkStubPostMsgHandler(void * instance, SfxRequest * data) Line 1065
sfxlo.dll!Link<SfxRequest *,void>::Call(SfxRequest * data) Line 84
sfxlo.dll!SfxHintPoster::DoEvent_Impl(void * pPostedHint) Line 45
sfxlo.dll!SfxHintPoster::LinkStubDoEvent_Impl(void * instance, void * data) Line 42
vcllo.dll!Link<void *,void>::Call(void * data) Line 84
vcllo.dll!ImplHandleUserEvent(ImplSVEvent * pSVEvent) Line 1959
vcllo.dll!ImplWindowFrameProc(vcl::Window * _pWindow, unsigned short nEvent, const void * pEvent) Line 2524
vcllo.dll!SalFrame::CallCallback(unsigned short nEvent, const void * pEvent) Line 273
vcllo.dll!ImplHandleUserEvent(HWND__ * hWnd, long lParam) Line 4111
vcllo.dll!SalFrameWndProc(HWND__ * hWnd, unsigned int nMsg, unsigned int wParam, long lParam, int & rDef) Line 5767
Change-Id: Iba97daf9cc90028c3b0ef693f928affa32bf5a0e
-rw-r--r-- | sfx2/source/view/viewfrm2.cxx | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/sfx2/source/view/viewfrm2.cxx b/sfx2/source/view/viewfrm2.cxx index cb0be79264f7..bddaededbea1 100644 --- a/sfx2/source/view/viewfrm2.cxx +++ b/sfx2/source/view/viewfrm2.cxx @@ -255,7 +255,6 @@ void SfxViewFrame::Exec_Impl(SfxRequest &rReq ) pDocSh->SetModified( false ); rReq.Done(); // Must call this before Close()! bClosed = false; - SolarMutexReleaser rel; try { xTask->close(sal_True); |