diff options
author | Leandro Pereira <leandro@hardinfo.org> | 2012-01-15 19:03:48 -0200 |
---|---|---|
committer | Leandro Pereira <leandro@hardinfo.org> | 2012-01-15 19:03:48 -0200 |
commit | 03eb46be1b95bf1eaeb33aa169b9689a0b3004ac (patch) | |
tree | b1ef4dadbedf0e71379e51671b8b68f0499388b9 | |
parent | 86d8d0b6082ac502e71e90abaca014d72b87c356 (diff) |
Allocate/deallocate sensor labels/compute hash table only once
-rw-r--r-- | includes/devices.h | 2 | ||||
-rw-r--r-- | modules/devices.c | 2 | ||||
-rw-r--r-- | 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); +} |