From 6e92dbbe235d7dc4d91a250b1b7546a1db871b3e Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 27 Jun 2018 11:11:35 +0200 Subject: [PATCH] media-session: always check if session is busy Also check if the session is busy if we explicitly provided the target session id to join. --- src/modules/module-media-session.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/modules/module-media-session.c b/src/modules/module-media-session.c index 0b97f9684..52f5232cb 100644 --- a/src/modules/module-media-session.c +++ b/src/modules/module-media-session.c @@ -422,13 +422,14 @@ static int find_session(void *data, struct session *sess) if (strcmp(str, find->media_class) != 0) return 0; - if ((find->exclusive && sess->busy) || sess->exclusive) { - pw_log_debug("module %p: session in use", impl); - return 0; - } plugged = sess->plugged; } + if ((find->exclusive && sess->busy) || sess->exclusive) { + pw_log_debug("module %p: session in use", impl); + return 0; + } + pw_log_debug("module %p: found session '%d' %" PRIu64, impl, sess->id, plugged); @@ -515,6 +516,7 @@ static int handle_autoconnect(struct impl *impl, struct pw_node *node, find.impl = impl; find.sess = NULL; + find.plugged = 0; find.exclusive = exclusive; spa_list_for_each(session, &impl->session_list, l) find_session(&find, session);