summaryrefslogtreecommitdiff
path: root/embedserv
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2016-02-15 15:09:00 +0100
committerStephan Bergmann <sbergman@redhat.com>2016-02-15 15:09:00 +0100
commit5b0c551b9b35f7075d210c9a23e7721e46a66bf9 (patch)
treec853d354741eab973fbef5a5e89b91547212d46d /embedserv
parent73c0e1e94a285d6c062853a3e7ce874b807ba82e (diff)
Avoid deadlock between sd::ToolBarManager::Implementation::maMutex...
...and SolarMutex, when e.g. during JunitTest_framework_complex the main thread has the SolarMutex locked and tries to lock > osl_acquireMutex(oslMutexImpl*) > osl::Mutex::acquire() > osl::Guard<osl::Mutex>::Guard(osl::Mutex&) > sd::ToolBarManager::Implementation::LockUpdate() > sd::ToolBarManager::LockUpdate() > sd::ToolBarManager::UpdateLock::UpdateLock(std::shared_ptr<sd::ToolBarManager> const&) > sd::framework::ToolBarModule::HandleUpdateStart() > sd::framework::ToolBarModule::notifyConfigurationChange(com::sun::star::drawing::framework::ConfigurationChangeEvent const&) > sd::framework::ConfigurationControllerBroadcaster::NotifyListeners(std::__debug::vector<sd::framework::ConfigurationControllerBroadcaster::ListenerDescriptor, std::allocator<sd::framework::ConfigurationControllerBroadcaster::ListenerDescriptor> > const&, com::sun::star::drawing::framework::ConfigurationChangeEvent const&) > sd::framework::ConfigurationControllerBroadcaster::NotifyListeners(com::sun::star::drawing::framework::ConfigurationChangeEvent const&) > sd::framework::ConfigurationUpdater::UpdateConfiguration() > sd::framework::ConfigurationUpdater::RequestUpdate(com::sun::star::uno::Reference<com::sun::star::drawing::framework::XConfiguration> const&) > sd::framework::ChangeRequestQueueProcessor::ProcessOneEvent() > sd::framework::ChangeRequestQueueProcessor::ProcessEvent(void*) > sd::framework::ChangeRequestQueueProcessor::LinkStubProcessEvent(void*, void*) > Link<void*, void>::Call(void*) > ImplHandleUserEvent(ImplSVEvent*) > ImplWindowFrameProc(vcl::Window*, unsigned short, void const*) > SalFrame::CallCallback(unsigned short, void const*) > SvpSalInstance::DoYield(bool, bool, unsigned long) > ImplYield(bool, bool, unsigned long) > Application::Yield() > Application::Execute() > desktop::Desktop::DoExecute() > desktop::Desktop::Main() > ImplSVMain() > SVMain() > soffice_main() > main() while some URP worker thread has sd::ToolBarManager::Implementation::maMutex locked and tries to lock > osl_acquireMutex(oslMutexImpl*) > osl::Mutex::acquire() > SalYieldMutex::acquire() > SolarMutexGuard::SolarMutexGuard() > framework::ToolbarLayoutManager::implts_calcWindowPosSizeOnSingleRowColumn(int, int, framework::ToolbarLayoutManager::SingleRowColumnWindowData&, Size const&) > framework::ToolbarLayoutManager::doLayout(Size const&) > framework::LayoutManager::implts_doLayout(bool, bool) > framework::LayoutManager::implts_doLayout_notify(bool) > framework::LayoutManager::unlock() (this=0x2b0d9ff633e8) > (anonymous namespace)::LayouterLock::~LayouterLock() > std::default_delete<(anonymous namespace)::LayouterLock>::operator()((anonymous namespace)::LayouterLock*) const > std::unique_ptr<(anonymous namespace)::LayouterLock, std::default_delete<(anonymous namespace)::LayouterLock> >::reset((anonymous namespace)::LayouterLock*) > sd::ToolBarManager::Implementation::Update(std::unique_ptr<(anonymous namespace)::LayouterLock, std::default_delete<(anonymous namespace)::LayouterLock> >) > sd::ToolBarManager::Implementation::UnlockUpdate() > sd::ToolBarManager::Implementation::UpdateLockImplementation::~UpdateLockImplementation() > sd::ToolBarManager::Implementation::SetValid(bool) > sd::ToolBarManager::Implementation::EventMultiplexerCallback(sd::tools::EventMultiplexerEvent&) > sd::ToolBarManager::Implementation::LinkStubEventMultiplexerCallback(void*, sd::tools::EventMultiplexerEvent&) > Link<sd::tools::EventMultiplexerEvent&, void>::Call(sd::tools::EventMultiplexerEvent&) const > sd::tools::EventMultiplexer::Implementation::CallListeners(sd::tools::EventMultiplexerEvent&) > sd::tools::EventMultiplexer::Implementation::CallListeners(unsigned int, void*) > sd::tools::EventMultiplexer::Implementation::frameAction(com::sun::star::frame::FrameActionEvent const&) > (anonymous namespace)::Frame::implts_sendFrameActionEvent(com::sun::star::frame::FrameAction const&) > (anonymous namespace)::Frame::setComponent(com::sun::star::uno::Reference<com::sun::star::awt::XWindow> const&, com::sun::star::uno::Reference<com::sun::star::frame::XController> const&) > (anonymous namespace)::Frame::close(unsigned char) > gcc3::callVirtualMethod(void*, unsigned int, void*, _typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int, unsigned long*, double*) > cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy*, bridges::cpp_uno::shared::VtableSlot, _typelib_TypeDescriptionReference*, int, _typelib_MethodParameter*, void*, void**, _uno_Any**) > bridges::cpp_uno::shared::unoInterfaceProxyDispatch(_uno_Interface*, _typelib_TypeDescription const*, void*, void**, _uno_Any**) > binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny*, std::__debug::vector<binaryurp::BinaryAny, std::allocator<binaryurp::BinaryAny> >*) const > binaryurp::IncomingRequest::execute() const > request(void*) > cppu_threadpool::JobQueue::enter(long, bool) > cppu_threadpool::ORequestThread::run() > threadFunc(void*) (param=0x2b0db00019e0) > osl_thread_start_Impl(void*) > start_thread Change-Id: Ie846bd95944680160eebc93b904875142723ac70
Diffstat (limited to 'embedserv')
0 files changed, 0 insertions, 0 deletions