summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2013-04-19 01:26:36 +0200
committerStephan Bergmann <sbergman@redhat.com>2013-04-19 01:39:42 +0200
commit4069417bc3bbe4858f4d7cd264604e76affe82fc (patch)
tree891bce68712961587589e192c7eb525553ff8d52 /vcl
parentfa72fc3eddbfabb82193452a4ba993b11d1584da (diff)
Do not arbitrarily lock a mutex
...without unlocking it again. This nonsense /does/ cause deadlocks and hours of frustrated debugging on --enable-dbgutil Mac OS X, e.g., after this code is called as 0 VirtualDevice::~VirtualDevice (this=0xa363200) at lo/core/vcl/source/gdi/virdev.cxx:187 1 0x05541677 in VirtualDevice::~VirtualDevice (this=0xa363200) at lo/core/vcl/source/gdi/virdev.cxx:182 2 0x0554164a in VirtualDevice::~VirtualDevice (this=0xa363200) at lo/core/vcl/source/gdi/virdev.cxx:182 3 0x05646a76 in StatusBar::~StatusBar (this=0xa362f10) at lo/core/vcl/source/window/status.cxx:176 4 0x05646947 in StatusBar::~StatusBar (this=0xa362f10) at lo/core/vcl/source/window/status.cxx:168 5 0x0564691a in StatusBar::~StatusBar (this=0xa362f10) at lo/core/vcl/source/window/status.cxx:168 6 0x0396cf2f in VCLXDevice::DestroyOutputDevice (this=0x390356cc) at lo/core/toolkit/source/awt/vclxdevice.cxx:56 7 0x039d4345 in VCLXWindow::dispose (this=0x390356cc) at lo/core/toolkit/source/awt/vclxwindow.cxx:956 8 0x039d452c in non-virtual thunk to VCLXWindow::dispose() (this=0x390356f8) at lo/core/toolkit/source/awt/vclxwindow.cxx:976 9 0x10dc6126 in framework::ProgressBarWrapper::setStatusBar (this=0x39002aac, rStatusBar=@0xb122e050, bOwnsInstance=0) at lo/core/framework/source/uielement/progressbarwrapper.cxx:63 10 0x10c17c84 in framework::LayoutManager::implts_backupProgressBarWrapper (this=0x19582c48) at lo/core/framework/source/layoutmanager/layoutmanager.cxx:943 11 0x10c16ca7 in framework::LayoutManager::implts_destroyProgressBar (this=0x19582c48) at lo/core/framework/source/layoutmanager/layoutmanager.cxx:959 12 0x10c13928 in framework::LayoutManager::implts_destroyStatusBar (this=0x19582c48) at lo/core/framework/source/layoutmanager/layoutmanager.cxx:837 13 0x10c135cb in framework::LayoutManager::implts_destroyElements (this=0x19582c48) at lo/core/framework/source/layoutmanager/layoutmanager.cxx:446 14 0x10c1a022 in framework::LayoutManager::setDockingAreaAcceptor (this=0x19582c48, xDockingAreaAcceptor=@0xb122e318) at lo/core/framework/source/layoutmanager/layoutmanager.cxx:1344 15 0x10c1b199 in non-virtual thunk to framework::LayoutManager::setDockingAreaAcceptor(com::sun::star::uno::Reference<com::sun::star::ui::XDockingAreaAcceptor> const&) (this=0x19582c60, xDockingAreaAcceptor=@0xb122e318) at lo/core/framework/source/layoutmanager/layoutmanager.cxx:1363 16 0x10cc26fb in framework::lcl_disableLayoutManager (xLayoutManager=@0x39013338, xFrame=@0xb122e3d8) at lo/core/framework/source/services/frame.cxx:505 17 0x10cca452 in framework::Frame::dispose (this=0x3901320c) at lo/core/framework/source/services/frame.cxx:1851 18 0x10cc925e in framework::Frame::close (this=0x3901320c, bDeliverOwnership=1) at lo/core/framework/source/services/frame.cxx:1644 19 0x10cc933b in non-virtual thunk to framework::Frame::close(unsigned char) (this=0x39013238, bDeliverOwnership=1) at lo/core/framework/source/services/frame.cxx:1645 20 0x0cfb07ad in (anonymous namespace)::callVirtualMethod (pAdjustedThisPtr=0x39013238, nVtableIndex=5, pRegisterReturn=0x0, pReturnTypeDescr=0xa03e240, bSimpleReturn=true, pStackLongs=0xb122e610, nStackLongs=2) at lo/core/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx:75 21 0x0cfb01aa in (anonymous namespace)::cpp_call (pThis=0x179e2b20, aVtableSlot={offset = 0, index = 5}, pReturnTypeRef=0xa03e240, nParams=1, pParams=0x179ec9e0, pUnoReturn=0x0, pUnoArgs=0xa3652a0, ppUnoExc=0xb122eaac) at lo/core/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx:270 22 0x0cfaf785 in bridges::cpp_uno::shared::unoInterfaceProxyDispatch (pUnoI=0x179e2b20, pMemberDescr=0x179ed690, pReturn=0x0, pArgs=0xa3652a0, ppException=0xb122eaac) at lo/core/bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx:461 23 0x10817d68 in binaryurp::IncomingRequest::execute_throw (this=0x179edf90, returnValue=0xb122ed58, outArguments=0xb122ed48) at lo/core/binaryurp/source/incomingrequest.cxx:245 24 0x10816293 in binaryurp::IncomingRequest::execute (this=0x179edf90) at lo/core/binaryurp/source/incomingrequest.cxx:74 25 0x10829105 in request (pThreadSpecificData=0x179edf90) at lo/core/binaryurp/source/reader.cxx:85 26 0x00bc39fe in cppu_threadpool::JobQueue::enter (this=0x179db470, nDisposeId=171320704, bReturnWhenNoJob=1) at lo/core/cppu/source/threadpool/jobqueue.cxx:115 27 0x00bc67f1 in cppu_threadpool::ORequestThread::run (this=0xa362580) at lo/core/cppu/source/threadpool/thread.cxx:171 28 0x00bc698c in non-virtual thunk to cppu_threadpool::ORequestThread::run() (this=0xa362588) at lo/core/cppu/source/threadpool/thread.cxx:201 29 0x00bc81ad in threadFunc (param=0xa362588) at thread.hxx:187 30 0x00016f4c in osl_thread_start_Impl (pData=0xa362030) at lo/core/sal/osl/unx/thread.c:251 31 0x9560eed9 in _pthread_start () 32 0x956126de in thread_start () in JunitTest_extensions_unoapi; but it is also called regularly when running a plain backing-windows soffice instance, 0 VirtualDevice::~VirtualDevice (this=0xbfff7a60) at lo/core/vcl/source/gdi/virdev.cxx:187 1 0x05541677 in VirtualDevice::~VirtualDevice (this=0xbfff7a60) at lo/core/vcl/source/gdi/virdev.cxx:182 2 0x10ca4f3d in framework::BackingWindow::Paint (this=0xa9da800) at lo/core/framework/source/services/backingwindow.cxx:699 3 0x05698dd8 in Window::ImplCallPaint (this=0xa9da800, pRegion=0x179d55c0, nPaintFlags=60) at lo/core/vcl/source/window/window.cxx:2462 4 0x05698f4b in Window::ImplCallPaint (this=0xa08dad0, pRegion=0x179c7270, nPaintFlags=60) at lo/core/vcl/source/window/window.cxx:2486 5 0x05698f4b in Window::ImplCallPaint (this=0xa08dd90, pRegion=0x0, nPaintFlags=60) at lo/core/vcl/source/window/window.cxx:2486 6 0x0569a141 in Window::Update (this=0xa08dd90) at lo/core/vcl/source/window/window.cxx:7505 7 0x056c9881 in ImplHandlePaint (pWindow=0xa08dd90, rBoundRect=@0xbfff8198, bImmediateUpdate=true) at lo/core/vcl/source/window/winproc.cxx:1575 8 0x056c6e88 in ImplWindowFrameProc (pWindow=0xa08dd90, nEvent=8, pEvent=0xbfff82a0) at lo/core/vcl/source/window/winproc.cxx:2484 9 0x056f33a6 in SalFrame::CallCallback (this=0xa08e050, nEvent=8, pEvent=0xbfff82a0) at salframe.hxx:243 10 0x05727a93 in AquaSalFrame::SendPaintEvent (this=0xa08e050, pRect=0x0) at lo/core/vcl/aqua/source/window/salframe.cxx:423 11 0x057678d3 in -[SalFrameWindow windowDidBecomeKey:] (self=0xa08e130, _cmd=0x9402b075, pNotification=0x179d5240) at lo/core/vcl/aqua/source/window/salframeview.mm:227 12 0x9b556df1 in __-[NSNotificationCenter addObserver:selector:name:object:]_block_invoke_1 () 13 0x996ba903 in ___CFXNotificationPost_block_invoke_1 () 14 0x99685688 in _CFXNotificationPost () 15 0x9b541fde in -[NSNotificationCenter postNotificationName:object:userInfo:] () 16 0x9b557272 in -[NSNotificationCenter postNotificationName:object:] () 17 0x937deec5 in -[NSWindow becomeKeyWindow] () 18 0x9374af4d in _NXSendWindowNotification () 19 0x937de618 in _NXShowKeyAndMain () 20 0x9374477d in -[NSApplication sendEvent:] () 21 0x0575388d in -[VCL_NSApplication sendEvent:] (self=0xa02d120, _cmd=0x94126a08, pEvent=0x179c8430) at lo/core/vcl/aqua/source/app/vclnsapp.mm:208 22 0x056f081e in AquaSalInstance::Yield (this=0xa315ff0, bWait=true, bHandleAllCurrentEvents=false) at lo/core/vcl/aqua/source/app/salinst.cxx:695 23 0x050acee2 in ImplYield (i_bWait=true, i_bAllEvents=false) at lo/core/vcl/source/app/svapp.cxx:422 24 0x050a81be in Application::Yield (i_bAllEvents=false) at lo/core/vcl/source/app/svapp.cxx:456 25 0x050a817a in Application::Execute () at lo/core/vcl/source/app/svapp.cxx:401 26 0x00124a3a in desktop::Desktop::Main (this=0xbfff95e0) at lo/core/desktop/source/app/app.cxx:1736 27 0x050b8934 in ImplSVMain () at lo/core/vcl/source/app/svmain.cxx:162 28 0x056eff73 in AquaSalInstance::handleAppDefinedEvent (pEvent=0xa324b20) at lo/core/vcl/aqua/source/app/salinst.cxx:538 29 0x05752faf in -[VCL_NSApplication sendEvent:] (self=0xa02d120, _cmd=0x94126a08, pEvent=0xa324b20) at lo/core/vcl/aqua/source/app/vclnsapp.mm:60 30 0x936d6b21 in -[NSApplication run] () 31 0x93967ac5 in NSApplicationMain () 32 0x056eec96 in ImplSVMainHook (pnInit=0xbfff9580) at lo/core/vcl/aqua/source/app/salinst.cxx:231 33 0x050b9ea1 in SVMain () at lo/core/vcl/source/app/svmain.cxx:195 34 0x0018e01d in soffice_main () at lo/core/desktop/source/app/sofficemain.cxx:82 35 0x00001f5b in sal_main () at lo/core/desktop/source/app/main.c:48 36 0x00001f40 in main (argc=5, argv=0xbfff966c) at lo/core/desktop/source/app/main.c:47 Whatever the root problem behind 8ed93fef13be39815b452474e9e44bf8b6861ea3 "We need to acquire the yield mutex here," please fix it properly instead. Change-Id: I281da60de1471f702ca34fd2b3239b6da83e2cf9
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/gdi/virdev.cxx9
1 files changed, 0 insertions, 9 deletions
diff --git a/vcl/source/gdi/virdev.cxx b/vcl/source/gdi/virdev.cxx
index 2e8415de8656..35595507ea9c 100644
--- a/vcl/source/gdi/virdev.cxx
+++ b/vcl/source/gdi/virdev.cxx
@@ -184,15 +184,6 @@ VirtualDevice::~VirtualDevice()
ImplSVData* pSVData = ImplGetSVData();
-#if defined(DBG_UTIL) && defined(MACOSX)
- // OutputDevice::ImplReleaseGraphics() requires the yield mutex to be
- // held, hmm. For some reason this is a problem only in a dbgutil build on
- // OS X, when this stuff gets called when soffice is about to exit, from
- // editeng/source/editeng/eerdll.cxx. If this code is used on Linux, we
- // again get a hang in some/all of the subsequentchecks.
- pSVData->mpDefInst->AcquireYieldMutex( 1 );
-#endif
-
ImplReleaseGraphics();
if ( mpVirDev )