[4/5] services: Get rid of unnecessary locks.
Sebastian Lackner
sebastian at fds-team.de
Wed Mar 2 00:21:51 CST 2016
Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
---
Various other parts rely on the fact that locking the database implicitly locks all services.
programs/services/rpc.c | 6 ------
programs/services/services.c | 2 --
2 files changed, 8 deletions(-)
diff --git a/programs/services/rpc.c b/programs/services/rpc.c
index d9379c4..aad3b22 100644
--- a/programs/services/rpc.c
+++ b/programs/services/rpc.c
@@ -274,7 +274,6 @@ DWORD __cdecl svcctl_GetServiceDisplayNameW(
{
LPCWSTR name;
int len;
- service_lock(entry);
name = get_display_name(entry);
len = strlenW(name);
if (len <= *cchBufSize)
@@ -285,7 +284,6 @@ DWORD __cdecl svcctl_GetServiceDisplayNameW(
else
err = ERROR_INSUFFICIENT_BUFFER;
*cchBufSize = len;
- service_unlock(entry);
}
else
err = ERROR_SERVICE_DOES_NOT_EXIST;
@@ -319,7 +317,6 @@ DWORD __cdecl svcctl_GetServiceKeyNameW(
if (entry != NULL)
{
int len;
- service_lock(entry);
len = strlenW(entry->name);
if (len <= *cchBufSize)
{
@@ -329,7 +326,6 @@ DWORD __cdecl svcctl_GetServiceKeyNameW(
else
err = ERROR_INSUFFICIENT_BUFFER;
*cchBufSize = len;
- service_unlock(entry);
}
else
err = ERROR_SERVICE_DOES_NOT_EXIST;
@@ -539,9 +535,7 @@ static DWORD create_serviceW(
if ((found = scmdatabase_find_service(manager->db, lpServiceName)))
{
- service_lock(found);
err = is_marked_for_delete(found) ? ERROR_SERVICE_MARKED_FOR_DELETE : ERROR_SERVICE_EXISTS;
- service_unlock(found);
scmdatabase_unlock(manager->db);
free_service_entry(entry);
return err;
diff --git a/programs/services/services.c b/programs/services/services.c
index 1972cce..c45aed3 100644
--- a/programs/services/services.c
+++ b/programs/services/services.c
@@ -435,9 +435,7 @@ void release_service(struct service_entry *service)
if (InterlockedDecrement(&service->ref_count) == 0 && is_marked_for_delete(service))
{
scmdatabase_lock(service->db);
- service_lock(service);
scmdatabase_remove_service(service->db, service);
- service_unlock(service);
scmdatabase_unlock(service->db);
free_service_entry(service);
}
--
2.7.1
More information about the wine-patches
mailing list