[Libreoffice-commits] core.git: vcl/source
Stephan Bergmann
sbergman at redhat.com
Thu Apr 18 16:40:24 PDT 2013
vcl/source/gdi/virdev.cxx | 9 ---------
1 file changed, 9 deletions(-)
New commits:
commit 4069417bc3bbe4858f4d7cd264604e76affe82fc
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Fri Apr 19 01:26:36 2013 +0200
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
diff --git a/vcl/source/gdi/virdev.cxx b/vcl/source/gdi/virdev.cxx
index 2e8415d..3559550 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 )
More information about the Libreoffice-commits
mailing list