aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/devices.h2
-rw-r--r--modules/devices.c2
-rw-r--r--modules/devices/sensors.c17
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);
+}