From cb0ba446aa7b2ec57783f95276a94d3c9620eb86 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 12 Oct 2009 19:49:54 -0400 Subject: [PATCH 10/21] Add cookie generation This will be used to generate unique cookies for inhibitors. --- src/ck-manager.c | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-) diff --git a/src/ck-manager.c b/src/ck-manager.c index 7bad93b..36b752d 100644 --- a/src/ck-manager.c +++ b/src/ck-manager.c @@ -1595,6 +1595,28 @@ ck_manager_get_system_idle_since_hint (CkManager *manager, return TRUE; } +static guint32 +generate_cookie (void) +{ + guint32 cookie; + + cookie = (guint32)g_random_int_range (1, G_MAXINT32); + + return cookie; +} + +static guint32 +generate_unique_inhibitor_cookie (CkManager *manager) +{ + guint32 cookie; + + do { + cookie = generate_cookie (); + } while (g_hash_table_lookup (manager->priv->inhibitors, GINT_TO_POINTER (cookie)) != NULL); + + return cookie; +} + static void open_session_for_leader (CkManager *manager, CkSessionLeader *leader, -- 1.6.5.rc2