forked from pool/wireplumber
Antonio Larrosa
3c7ac99186
- Update to version 0.4.6. OBS-URL: https://build.opensuse.org/request/show/945147 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/wireplumber?expand=0&rev=17
47 lines
1.6 KiB
Diff
47 lines
1.6 KiB
Diff
From afe71d7e48c28b0ae5cbd9327433e3c55c103fcb Mon Sep 17 00:00:00 2001
|
|
From: Julian Bouzas <julian.bouzas@collabora.com>
|
|
Date: Thu, 6 Jan 2022 10:53:38 -0500
|
|
Subject: [PATCH] policy-node: schedule a rescan without timeout if defined
|
|
target is not found
|
|
|
|
Fixes #146
|
|
---
|
|
src/scripts/policy-node.lua | 17 ++++-------------
|
|
1 file changed, 4 insertions(+), 13 deletions(-)
|
|
|
|
diff --git a/src/scripts/policy-node.lua b/src/scripts/policy-node.lua
|
|
index 8ca5a695..c273c1fe 100644
|
|
--- a/src/scripts/policy-node.lua
|
|
+++ b/src/scripts/policy-node.lua
|
|
@@ -552,25 +552,16 @@ function handleLinkable (si)
|
|
si_target = nil
|
|
end
|
|
|
|
- -- wait up to 2 seconds for the requested target to become available
|
|
- -- this is because the client may have already "seen" a target that we haven't
|
|
- -- yet prepared, which leads to a race condition
|
|
+ -- if the client has seen a target that we haven't yet prepared, schedule
|
|
+ -- a rescan one more time and hope for the best
|
|
local si_id = si.id
|
|
if si_props["node.target"] and si_props["node.target"] ~= "-1"
|
|
and not si_target
|
|
and not si_flags[si_id].was_handled
|
|
and not si_flags[si_id].done_waiting then
|
|
- if not si_flags[si_id].timeout_source then
|
|
- si_flags[si_id].timeout_source = Core.timeout_add(2000, function()
|
|
- if si_flags[si_id] then
|
|
- si_flags[si_id].done_waiting = true
|
|
- si_flags[si_id].timeout_source = nil
|
|
- scheduleRescan()
|
|
- end
|
|
- return false
|
|
- end)
|
|
- end
|
|
Log.info (si, "... waiting for target")
|
|
+ si_flags[si_id].done_waiting = true
|
|
+ scheduleRescan()
|
|
return
|
|
end
|
|
|
|
--
|