From 1039e2b9d574fb16daa79dd2bb235f4e22fc74d5 Mon Sep 17 00:00:00 2001 From: Jeff Zhou Date: Mon, 5 Oct 2026 19:24:42 +0800 Subject: [PATCH] service/pipewire: call pw_loop_enter/leave on the SPA event loop --- changelog/next.md | 1 + src/services/pipewire/core.cpp | 3 +++ 2 files changed, 4 insertions(+) diff --git a/changelog/next.md b/changelog/next.md index 12428d7..3f7f57f 100644 --- a/changelog/next.md +++ b/changelog/next.md @@ -6,3 +6,4 @@ - Fixed `WlSessionLock.locked` changes not being emitted on unlock. - Fixed a crash when unplugging a screen being captured by ScreencopyView or trying to capture the fallback screen. - Fixed most broken qml types in qmlls/qmllint for Qt 6.12. +- Fixed missing thread entry for Pipewire event loop resulting in Pipewire connection failing. diff --git a/src/services/pipewire/core.cpp b/src/services/pipewire/core.cpp index 5077abe..3fe680e 100644 --- a/src/services/pipewire/core.cpp +++ b/src/services/pipewire/core.cpp @@ -55,6 +55,8 @@ bool PwCore::start(bool retry) { return false; } + pw_loop_enter(this->loop); + this->context = pw_context_new(this->loop, nullptr, 0); if (this->context == nullptr) { if (retry) { @@ -103,6 +105,7 @@ void PwCore::shutdown() { } if (this->loop != nullptr) { + pw_loop_leave(this->loop); pw_loop_destroy(this->loop); this->loop = nullptr; }