Skip to content

Do not block on setShortcut

Aleix Pol Gonzalez requested to merge work/async-init into master

We try to make sure the component is cached but there's little reason to have it block there (twice per action).

Would fix this blocked state here

#0  0x00007f5c297e58ca in __futex_abstimed_wait_common64 () at /usr/lib/libpthread.so.0
#1  0x00007f5c297df270 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#2  0x00007f5c29a69b7b in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., deadline=..., this=0x556f9b2a1cd0)
    at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:146
#3  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=this@entry=0x556f9b210200, mutex=mutex@entry=0x556f9b2101f8, deadline=...)
    at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:225
#4  0x00007f5c2d27cf42 in QDBusPendingCallPrivate::waitForFinished() (this=0x556f9b2101c0)
    at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qdeadlinetimer.h:68
#5  0x00007f5c2b7df54f in QDBusReply<QDBusObjectPath>::operator=(QDBusPendingCall const&) (this=0x7ffd14be28f0, pcall=...) at /home/apol/devel/kde5/include/QtDBus/qdbusreply.h:83
#6  0x00007f5c2b7d59b5 in QDBusReply<QDBusObjectPath>::QDBusReply(QDBusPendingReply<QDBusObjectPath, void, void, void, void, void, void, void> const&) (this=0x7ffd14be28f0, reply=...)
    at /home/apol/devel/kde5/include/QtDBus/qdbusreply.h:88
#7  0x00007f5c2b7d04d2 in KGlobalAccelPrivate::getComponent(QString const&, bool) (this=0x556f9b1aef40, componentUnique=..., remember=true)
    at /home/apol/devel/frameworks/kglobalaccel/src/kglobalaccel.cpp:40
#8  0x00007f5c2b7d26f1 in KGlobalAccelPrivate::updateGlobalShortcut(QAction*, QFlags<KGlobalAccelPrivate::ShortcutType>, KGlobalAccel::GlobalShortcutLoading) (this=0x556f9b1aef40, action=
    0x556f9b20e230, actionFlags=..., globalFlags=KGlobalAccel::Autoloading) at /home/apol/devel/frameworks/kglobalaccel/src/kglobalaccel.cpp:321
#9  0x00007f5c2b7d4202 in KGlobalAccel::setShortcut(QAction*, QList<QKeySequence> const&, KGlobalAccel::GlobalShortcutLoading)
    (this=0x7f5c2b7fb608 <(anonymous namespace)::Q_QGS_s_instance::innerFunction()::holder>, action=0x556f9b20e230, shortcut=..., loadFlag=KGlobalAccel::Autoloading)
    at /home/apol/devel/frameworks/kglobalaccel/src/kglobalaccel.cpp:643
#10 0x00007f5c2ce67604 in KWin::Workspace::initShortcut<KWin::Workspace, std::_Bind<void (KWin::Workspace::*(KWin::Workspace*, KWin::Workspace::Direction))(KWin::Workspace::Direction)> >(QString const&, QString const&, QKeySequence const&, KWin::Workspace*, std::_Bind<void (KWin::Workspace::*(KWin::Workspace*, KWin::Workspace::Direction))(KWin::Workspace::Direction)>, QVariant const&) (this=0x556f9b08ca40, actionName=..., description=..., shortcut=..., receiver=0x556f9b08ca40, slot=..., data=...) at /home/apol/devel/frameworks/kwin/src/useractions.cpp:963
#11 0x00007f5c2ce61f51 in KWin::Workspace::initShortcut<std::_Bind<void (KWin::Workspace::*(KWin::Workspace*, KWin::Workspace::Direction))(KWin::Workspace::Direction)> >(QString const&, QString const&, QKeySequence const&, std::_Bind<void (KWin::Workspace::*(KWin::Workspace*, KWin::Workspace::Direction))(KWin::Workspace::Direction)>, QVariant const&)
    (this=0x556f9b08ca40, actionName=..., description=..., shortcut=..., slot=..., data=...) at /home/apol/devel/frameworks/kwin/src/useractions.cpp:949
#12 0x00007f5c2ce581f1 in KWin::Workspace::initShortcuts() (this=0x556f9b08ca40) at /home/apol/devel/frameworks/kwin/src/useractions.cpp:1064
#13 0x00007f5c2ce8f7f8 in KWin::Workspace::Workspace() (this=0x556f9b08ca40) at /home/apol/devel/frameworks/kwin/src/workspace.cpp:202
#14 0x00007f5c2cd69f10 in KWin::Application::createWorkspace() (this=0x7ffd14be5ad8) at /home/apol/devel/frameworks/kwin/src/main.cpp:280
#15 0x0000556f9a00926d in KWin::ApplicationWayland::continueStartupWithScreens() (this=0x7ffd14be5ad8) at /home/apol/devel/frameworks/kwin/src/main_wayland.cpp:189
#16 0x0000556f9a009154 in KWin::ApplicationWayland::continueStartupWithScene() (this=0x7ffd14be5ad8) at /home/apol/devel/frameworks/kwin/src/main_wayland.cpp:178
#17 0x0000556f9a011058 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KWin::ApplicationWayland::*)()>::call(void (KWin::ApplicationWayland::*)(), KWin::ApplicationWayland*, void**)
    (f=(void (KWin::ApplicationWayland::*)(KWin::ApplicationWayland * const)) 0x556f9a0090a0 <KWin::ApplicationWayland::continueStartupWithScene()>, o=0x7ffd14be5ad8, arg=0x7ffd14be4a50)
    at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:152

Merge request reports