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] // CritSec +2a0958 at 002a0958 WaiterWoken No LockCount 1 RecursionCount 1 OwningThread 4e60 EntryCount 0 ContentionCount 14
_______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice