aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2014-01-18 13:04:01 +0100
committerMax Kellermann <max@duempel.org>2014-01-18 13:04:01 +0100
commit416f7c26009b11e12254261a02d925c824fbc154 (patch)
tree01c58d869036c661f56f405112a650976e6efc0b
parentb9f02f22c43ae8f86c8b1568cdccffd8793d087f (diff)
downloadmpd-416f7c26009b11e12254261a02d925c824fbc154.tar.gz
mpd-416f7c26009b11e12254261a02d925c824fbc154.tar.xz
mpd-416f7c26009b11e12254261a02d925c824fbc154.zip
db/upnp: don't hold mutex while downloading device description
Must not perform blocking I/O while holding a mutex.
-rw-r--r--src/db/upnp/Discovery.cxx2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/db/upnp/Discovery.cxx b/src/db/upnp/Discovery.cxx
index ad63530db..89ece3dfd 100644
--- a/src/db/upnp/Discovery.cxx
+++ b/src/db/upnp/Discovery.cxx
@@ -61,7 +61,6 @@ UPnPDeviceDirectory::discoExplorer()
return;
}
- const ScopeLock protect(mutex);
// Device signals its existence and well-being. Perform the
// UPnP "description" phase by downloading and decoding the
// description document.
@@ -81,6 +80,7 @@ UPnPDeviceDirectory::discoExplorer()
continue;
}
+ const ScopeLock protect(mutex);
#if defined(__clang__) || GCC_CHECK_VERSION(4,8)
auto e = directories.emplace(tsk->deviceId, d);
#else