Sebastian Lackner : services: Sort autostart services by dwTagId config value.

Alexandre Julliard julliard at winehq.org
Thu Aug 18 10:23:24 CDT 2016


Module: wine
Branch: master
Commit: 6fc42341ecdf71d80e3b7ac46961f29beb660c7a
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=6fc42341ecdf71d80e3b7ac46961f29beb660c7a

Author: Sebastian Lackner <sebastian at fds-team.de>
Date:   Thu Aug 18 09:31:35 2016 +0200

services: Sort autostart services by dwTagId config value.

Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 programs/services/services.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/programs/services/services.c b/programs/services/services.c
index 9156dbc..1092a25 100644
--- a/programs/services/services.c
+++ b/programs/services/services.c
@@ -318,6 +318,13 @@ static void scmdatabase_remove_service(struct scmdatabase *db, struct service_en
     service->entry.next = service->entry.prev = NULL;
 }
 
+static int compare_tags(const void *a, const void *b)
+{
+    struct service_entry *service_a = *(struct service_entry **)a;
+    struct service_entry *service_b = *(struct service_entry **)b;
+    return service_a->config.dwTagId - service_b->config.dwTagId;
+}
+
 static void scmdatabase_autostart_services(struct scmdatabase *db)
 {
     struct service_entry **services_list;
@@ -352,6 +359,7 @@ static void scmdatabase_autostart_services(struct scmdatabase *db)
     size = i;
 
     scmdatabase_unlock(db);
+    qsort(services_list, size, sizeof(services_list[0]), compare_tags);
     while (!scmdatabase_lock_startup(db)) Sleep(10);
 
     for (i = 0; i < size; i++)




More information about the wine-cvs mailing list