[vlc-commits] chromecast: only lock once when checking the current app
Steve Lhomme
git at videolan.org
Wed Dec 23 20:28:26 CET 2015
vlc | branch: master | Steve Lhomme <robUx4 at videolabs.io> | Wed Dec 23 12:58:43 2015 +0100| [e9dea57b5efd8e28053093a97db6453300cf4df1] | committer: Jean-Baptiste Kempf
chromecast: only lock once when checking the current app
Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e9dea57b5efd8e28053093a97db6453300cf4df1
---
modules/stream_out/chromecast/chromecast_ctrl.cpp | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/modules/stream_out/chromecast/chromecast_ctrl.cpp b/modules/stream_out/chromecast/chromecast_ctrl.cpp
index b2d5df5..fb14348 100644
--- a/modules/stream_out/chromecast/chromecast_ctrl.cpp
+++ b/modules/stream_out/chromecast/chromecast_ctrl.cpp
@@ -276,21 +276,23 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg)
{
json_value applications = (*p_data)["status"]["applications"];
const json_value *p_app = NULL;
+
+ vlc_mutex_locker locker(&lock);
for (unsigned i = 0; i < applications.u.array.length; ++i)
{
std::string appId(applications[i]["appId"]);
if (appId == APP_ID)
{
- p_app = &applications[i];
- vlc_mutex_lock(&lock);
- if (appTransportId.empty())
- appTransportId = std::string(applications[i]["transportId"]);
- vlc_mutex_unlock(&lock);
+ const char *pz_transportId = applications[i]["transportId"];
+ if (pz_transportId != NULL)
+ {
+ appTransportId = std::string(pz_transportId);
+ p_app = &applications[i];
+ }
break;
}
}
- vlc_mutex_lock(&lock);
if ( p_app )
{
if (!appTransportId.empty()
@@ -318,7 +320,6 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg)
}
}
- vlc_mutex_unlock(&lock);
}
else
{
More information about the vlc-commits
mailing list