deadlock question

林贵华 linguihua at aiyounet.com
Fri Sep 4 00:08:30 PDT 2015


 Hi ! I have a deadlock question to ask you.  I hope you can help me, thank
you!
I am trying to program a ContextMenuInterceptor by C++ in Secondary
development. but when I program in notifyContextMenuExecute method like :

class ContextMenuInterceptor : public
WeakImplHelper1<XContextMenuInterceptor>
{
    virtual ContextMenuInterceptorAction SAL_CALL notifyContextMenuExecute(
const ContextMenuExecuteEvent& aEvent )
       throw (::css::uno::RuntimeException, ::std::exception);
}

ContextMenuInterceptorAction
ContextMenuInterceptor::notifyContextMenuExecute( const
ContextMenuExecuteEvent& aEvent )
{
 Reference<XSelectionSupplier> xSupplier = aEvent.Selection;
 Any any = xSupplier->getSelection();
}

It leads to deadlock.

///mutli-threaded backtrace
main thread:
0  Id: 5418.4e60 Suspend: 1 Teb: 7efdd000 Unfrozen
ChildEBP RetAddr  Args to Child
00edd608 74dd15f7 00000002 00edd658 00000001
ntdll!ZwWaitForMultipleObjects+0x15 (FPO: [5,0,0])
00edd6a4 764b19f8 00edd658 00edd6cc 00000000
KERNELBASE!WaitForMultipleObjectsEx+0x100 (FPO: [Non-Fpo])
00edd6ec 76f1086a 00000002 7efde000 00000000
kernel32!WaitForMultipleObjectsExImplementation+0xe0 (FPO: [Non-Fpo])
00edd740 76f10b69 0000005c 00edd7a8 ffffffff
USER32!RealMsgWaitForMultipleObjectsEx+0x14d (FPO: [Non-Fpo])
00edd75c 0fcbca13 00000001 00edd7a8 00000000
USER32!MsgWaitForMultipleObjects+0x1f (FPO: [Non-Fpo])
00edd7a0 0fe359db 000002e4 00000000 51ddb8ac sal3!osl_waitCondition+0x83
(FPO: [Non-Fpo]) (CONV: cdecl)
[d:\libreofficecomplie\4.3.3.2_pure_src\sal\osl\w32\conditn.c @ 99]
00edd7f8 0fe3ea74 0abb5a08 00000000 00000000
cppu3!cppu_threadpool::JobQueue::enter+0x10b (FPO: [Non-Fpo]) (CONV:
thiscall)
[d:\libreofficecomplie\4.3.3.2_pure_src\cppu\source\threadpool\jobqueue.cxx
@ 81]
00edd840 0fe40c2d 00edd864 0abb5a08 00000000
cppu3!cppu_threadpool::ThreadPool::enter+0x104 (FPO: [Non-Fpo]) (CONV:
thiscall)
[d:\libreofficecomplie\4.3.3.2_pure_src\cppu\source\threadpool\threadpool.cxx
@ 349]
00edd878 0b6c37e8 0abb5a08 00edd8b4 53ebaa3a
cppu3!uno_threadpool_enter+0x8d (FPO: [Non-Fpo]) (CONV: cdecl)
[d:\libreofficecomplie\4.3.3.2_pure_src\cppu\source\threadpool\threadpool.cxx
@ 454]
00edd908 0b6e6614 0b082100 00edd980 00000000
binaryurplo!binaryurp::Bridge::makeCall+0x148 (FPO: [Non-Fpo]) (CONV:
thiscall)
[d:\libreofficecomplie\4.3.3.2_pure_src\binaryurp\source\bridge.cxx @ 626]
00edda14 0b6e61d2 0b095768 00eddc48 00eddb00
binaryurplo!binaryurp::Proxy::do_dispatch_throw+0x294 (FPO: [Non-Fpo])
(CONV: thiscall)
[d:\libreofficecomplie\4.3.3.2_pure_src\binaryurp\source\proxy.cxx @ 184]
00eddaac 0b6e6c86 0b095768 00eddc48 00eddb00
binaryurplo!binaryurp::Proxy::do_dispatch+0x52 (FPO: [Non-Fpo]) (CONV:
thiscall)
[d:\libreofficecomplie\4.3.3.2_pure_src\binaryurp\source\proxy.cxx @ 107]
00eddac4 085629cb 0b0820f0 0b095768 00eddc48
binaryurplo!proxy_dispatchInterface+0x36 (FPO: [Non-Fpo]) (CONV: cdecl)
[d:\libreofficecomplie\4.3.3.2_pure_src\binaryurp\source\proxy.cxx @ 61]
00eddb8c 08562fc0 0b0f9a88 0b095768 0b09e430 msci_uno!`anonymous
namespace'::cpp2uno_call+0x2eb (FPO: [Non-Fpo]) (CONV: cdecl)
[d:\libreofficecomplie\4.3.3.2_pure_src\bridges\source\cpp_uno\msvc_win32_intel\cpp2uno.cxx
@ 155]
00eddc30 08563091 00eddc50 00000003 00000000 msci_uno!`anonymous
namespace'::cpp_mediate+0x3e0 (FPO: [Non-Fpo]) (CONV: cdecl)
[d:\libreofficecomplie\4.3.3.2_pure_src\bridges\source\cpp_uno\msvc_win32_intel\cpp2uno.cxx
@ 334]
00eddc4c 055a0d6c 0b0f9a9c 00eddd00 51ddb52f msci_uno!`anonymous
namespace'::cpp_vtable_call+0x11 (FPO: [Non-Fpo]) (CONV: cdecl)
[d:\libreofficecomplie\4.3.3.2_pure_src\bridges\source\cpp_uno\msvc_win32_intel\cpp2uno.cxx
@ 366]
00eddcec 054e288d 0b045970 00edde28 00edde30
sfxlo!SfxViewShell::TryContextMenuInterception+0x1bc (FPO: [Non-Fpo])
(CONV: thiscall)
[d:\libreofficecomplie\4.3.3.2_pure_src\sfx2\source\view\viewsh.cxx @ 1976]
00edde6c 055aa313 0adcb3b8 0adda8f0 00edde90
sfxlo!SfxPopupMenuManager::ExecutePopup+0x37d (FPO: [Non-Fpo]) (CONV:
cdecl) [d:\libreofficecomplie\4.3.3.2_pure_src\sfx2\source\menu\mnumgr.cxx
@ 423]
00eddeb8 1929c64d 00eddf2c 00000000 0add4ae0
sfxlo!SfxDispatcher::ExecutePopup+0x153 (FPO: [Non-Fpo]) (CONV: cdecl)
[d:\libreofficecomplie\4.3.3.2_pure_src\sfx2\source\control\dispatch.cxx @
2181]
00ede17c 04a514d5 00ede1a0 51dd8810 0add4ae0 swlo!SwEditWin::Command+0x5ed
(FPO: [Non-Fpo]) (CONV: thiscall)
[d:\libreofficecomplie\4.3.3.2_pure_src\sw\source\core\uibase\docvw\edtwin.cxx
@ 5349]


child thread:
19  Id: 5418.55f4 Suspend: 1 Teb: 7ef84000 Unfrozen
ChildEBP RetAddr  Args to Child
1ffdf178 7742d993 00000144 00000000 00000000
ntdll!NtWaitForSingleObject+0x15 (FPO: [3,0,0])
1ffdf1dc 7742d877 00000000 00000000 0ad7ba60
ntdll!RtlpWaitOnCriticalSection+0x13e (FPO: [Non-Fpo])
1ffdf204 0fcbcf85 002a0958 002a0958 1ffdf228
ntdll!RtlEnterCriticalSection+0x150 (FPO: [Non-Fpo])
1ffdf214 04918bc5 002a0958 002a092c 002a1820 sal3!osl_acquireMutex+0x45
(FPO: [Non-Fpo]) (CONV: cdecl)
[d:\libreofficecomplie\4.3.3.2_pure_src\sal\osl\w32\mutex.c @ 72]
1ffdf228 04db5b12 002a0928 1ffdf240 048f7051 vcllo!osl::Mutex::acquire+0x15
(FPO: [Non-Fpo]) (CONV: thiscall)
[d:\libreofficecomplie\4.3.3.2_pure_src\include\osl\mutex.hxx @ 58]
1ffdf234 048f7051 1ffdf24c 1ffdf26c 190311c8
vcllo!SalYieldMutex::acquire+0x12 (FPO: [Non-Fpo]) (CONV: thiscall)
[d:\libreofficecomplie\4.3.3.2_pure_src\vcl\win\source\app\salinst.cxx @
134]
1ffdf240 190311c8 4d8b0b1e 002a0928 ffffffff
vcllo!SolarMutexGuard::SolarMutexGuard+0x21 (FPO: [Non-Fpo]) (CONV:
thiscall) [d:\libreofficecomplie\4.3.3.2_pure_src\include\vcl\svapp.hxx @
1565]
1ffdf26c 19031bfd 4d8b0bfa 1de8a620 1ffdf350
swlo!sw::UnoImplPtr<SwXTextRanges::Impl>::~UnoImplPtr<SwXTextRanges::Impl>+0x38
(FPO: [Non-Fpo]) (CONV: thiscall)
[d:\libreofficecomplie\4.3.3.2_pure_src\sw\inc\unobaseclass.hxx @ 107]
1ffdf288 19032bcf 1de8a620 1ffdf2ac 0f1266c3
swlo!SwXTextRanges::~SwXTextRanges+0x6d (FPO: [Non-Fpo]) (CONV: thiscall)
[d:\libreofficecomplie\4.3.3.2_pure_src\sw\source\core\unocore\unoobj2.cxx
@ 1576]
1ffdf294 0f1266c3 00000001 0fe64ff9 1de8a620 swlo!SwXTextRanges::`scalar
deleting destructor'+0xf (FPO: [Non-Fpo]) (CONV: thiscall)
1ffdf2ac 1903a5ad 1de8a620 1ffdf2d4 0856a282
cppuhelper3MSC!cppu::OWeakObject::release+0x43 (FPO: [Non-Fpo]) (CONV:
cdecl) [d:\libreofficecomplie\4.3.3.2_pure_src\cppuhelper\source\weak.cxx @
204]
1ffdf2b8 0856a282 1de8a620 0aceed80 0abb78b8
swlo!cppu::WeakImplHelper3<com::sun::star::lang::XUnoTunnel,com::sun::star::lang::XServiceInfo,com::sun::star::container::XIndexAccess>::release+0xd
(FPO: [Non-Fpo]) (CONV: cdecl)
[d:\libreofficecomplie\4.3.3.2_pure_src\include\cppuhelper\implbase3.hxx @
107]
1ffdf2d4 0fe654a7 0abb7860 0b166808 4ecd9c08
msci_uno!bridges::cpp_uno::shared::freeUnoInterfaceProxy+0x82 (FPO:
[Non-Fpo]) (CONV: cdecl)
[d:\libreofficecomplie\4.3.3.2_pure_src\bridges\source\cpp_uno\shared\unointerfaceproxy.cxx
@ 43]
1ffdf35c 0fe58811 1ffdf3a0 00000000 00000000
cppu3!s_stub_defenv_revokeInterface+0x207 (FPO: [Non-Fpo]) (CONV: cdecl)
[d:\libreofficecomplie\4.3.3.2_pure_src\cppu\source\uno\lbenv.cxx @ 391]
1ffdf374 0fe590ea 00000000 0abb7860 0fe652a0
cppu3!s_environment_invoke_v+0x91 (FPO: [Non-Fpo]) (CONV: cdecl)
[d:\libreofficecomplie\4.3.3.2_pure_src\cppu\source\uno\envstack.cxx @ 294]
1ffdf38c 0fe590bb 0abb7860 0fe652a0 1ffdf3a0
cppu3!uno_Environment_invoke_v+0x1a (FPO: [Non-Fpo]) (CONV: cdecl)
[d:\libreofficecomplie\4.3.3.2_pure_src\cppu\source\uno\envstack.cxx @ 313]
1ffdf3a4 0fe64ff9 0abb7860 0fe652a0 0abb7860
cppu3!uno_Environment_invoke+0x1b (FPO: [Non-Fpo]) (CONV: cdecl)
[d:\libreofficecomplie\4.3.3.2_pure_src\cppu\source\uno\envstack.cxx @ 322]
1ffdf3bc 0856a307 0abb7860 0b166808 1ffdf3dc
cppu3!defenv_revokeInterface+0x19 (FPO: [Non-Fpo]) (CONV: cdecl)
[d:\libreofficecomplie\4.3.3.2_pure_src\cppu\source\uno\lbenv.cxx @ 447]
1ffdf3cc 0b6ba5bf 0b166808 1ffdf438 1ffdf458
msci_uno!bridges::cpp_uno::shared::releaseProxy+0x37 (FPO: [Non-Fpo])
(CONV: cdecl)
[d:\libreofficecomplie\4.3.3.2_pure_src\bridges\source\cpp_uno\shared\unointerfaceproxy.cxx
@ 85]
1ffdf3dc 0b6c4fb8 4cfb876a 00000002 00000000
binaryurplo!com::sun::star::uno::UnoInterfaceReference::~UnoInterfaceReference+0x1f
(FPO: [Non-Fpo]) (CONV: thiscall)
[d:\libreofficecomplie\4.3.3.2_pure_src\include\uno\dispatcher.hxx @ 88]

//the lock information
CritSec +2a0958 at 002a0958
WaiterWoken        No
LockCount          1
RecursionCount     1
OwningThread       4e60    (main thread)
EntryCount         0
ContentionCount    14
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20150904/4a3bb857/attachment.html>


More information about the LibreOffice mailing list