Commit 6e2ad686 authored by Max Kellermann's avatar Max Kellermann

lib/upnp/ClientInit: use class ScopeLock

parent 8610eb84
...@@ -65,9 +65,11 @@ UpnpClientGlobalInit(UpnpClient_Handle &handle, Error &error) ...@@ -65,9 +65,11 @@ UpnpClientGlobalInit(UpnpClient_Handle &handle, Error &error)
if (!UpnpGlobalInit(error)) if (!UpnpGlobalInit(error))
return false; return false;
upnp_client_init_mutex.lock(); bool success;
bool success = upnp_client_ref > 0 || DoInit(error); {
upnp_client_init_mutex.unlock(); const ScopeLock protect(upnp_client_init_mutex);
success = upnp_client_ref > 0 || DoInit(error);
}
if (success) { if (success) {
++upnp_client_ref; ++upnp_client_ref;
...@@ -81,13 +83,13 @@ UpnpClientGlobalInit(UpnpClient_Handle &handle, Error &error) ...@@ -81,13 +83,13 @@ UpnpClientGlobalInit(UpnpClient_Handle &handle, Error &error)
void void
UpnpClientGlobalFinish() UpnpClientGlobalFinish()
{ {
upnp_client_init_mutex.lock(); {
const ScopeLock protect(upnp_client_init_mutex);
assert(upnp_client_ref > 0); assert(upnp_client_ref > 0);
if (--upnp_client_ref == 0) if (--upnp_client_ref == 0)
UpnpUnRegisterClient(upnp_client_handle); UpnpUnRegisterClient(upnp_client_handle);
}
upnp_client_init_mutex.unlock();
UpnpGlobalFinish(); UpnpGlobalFinish();
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment