From 03eb46be1b95bf1eaeb33aa169b9689a0b3004ac Mon Sep 17 00:00:00 2001 From: Leandro Pereira Date: Sun, 15 Jan 2012 19:03:48 -0200 Subject: Allocate/deallocate sensor labels/compute hash table only once --- includes/devices.h | 2 ++ modules/devices.c | 2 ++ modules/devices/sensors.c | 17 +++++++++++++---- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/includes/devices.h b/includes/devices.h index 7aee42bf..2452d914 100644 --- a/includes/devices.h +++ b/includes/devices.h @@ -61,6 +61,8 @@ void scan_printers_do(void); /* Sensors */ void scan_sensors_do(void); +void sensors_init(void); +void sensors_shutdown(void); #ifdef ARCH_x86 /* SPD */ diff --git a/modules/devices.c b/modules/devices.c index b7286f8a..a8f990ed 100644 --- a/modules/devices.c +++ b/modules/devices.c @@ -448,10 +448,12 @@ void hi_module_init(void) moreinfo = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); init_memory_labels(); init_cups(); + sensors_init(); } void hi_module_deinit(void) { + sensors_shutdown(); g_hash_table_destroy(moreinfo); g_hash_table_destroy(memlabels); g_module_close(cups); diff --git a/modules/devices/sensors.c b/modules/devices/sensors.c index e93668f0..1469c13e 100644 --- a/modules/devices/sensors.c +++ b/modules/devices/sensors.c @@ -34,10 +34,6 @@ static void read_sensor_labels(gchar * driver) gboolean lock = FALSE; gint i; - sensor_labels = g_hash_table_new_full(g_str_hash, g_str_equal, - g_free, g_free); - sensor_compute = g_hash_table_new(g_str_hash, g_str_equal); - /* Try to open lm-sensors config file sensors3.conf */ conf = fopen("/etc/sensors3.conf", "r"); @@ -395,3 +391,16 @@ void scan_sensors_do(void) /* FIXME: Add support for ibm acpi and more sensors */ } + +void sensors_init(void) +{ + sensor_labels = g_hash_table_new_full(g_str_hash, g_str_equal, + g_free, g_free); + sensor_compute = g_hash_table_new(g_str_hash, g_str_equal); +} + +void sensors_shutdown(void) +{ + g_hash_table_destroy(sensor_labels); + g_hash_table_destroy(sensor_compute); +} -- cgit v1.2.3