#include "ui_color.h"
#include "lmsensor.h"
#include "notify_cmd.h"
+#include <pmutex.h>
#include "slog.h"
#include "ui_pref.h"
#include "ui_graph.h"
printf(_("Copyright (C) %s jeanfi@gmail.com\n"
"License GPLv2: GNU GPL version 2 or later "
"<http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>\n"
- "This is free software: you are free to change and "
+ "This is free software: you are free to change and"
" redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"),
"2010-2014");
cfg = ui->config;
while (1) {
- pthread_mutex_lock(&ui->sensors_mutex);
+ pmutex_lock(&ui->sensors_mutex);
sensors = ui->sensors;
if (!sensors)
period = cfg->sensor_update_interval;
- pthread_mutex_unlock(&ui->sensors_mutex);
+ pmutex_unlock(&ui->sensors_mutex);
sleep(period);
}
ret = TRUE;
cfg = ui->config;
- pthread_mutex_lock(&ui->sensors_mutex);
+ pmutex_lock(&ui->sensors_mutex);
graph_update(ui->sensors, ui->w_graph, ui->config, ui->main_window);
ret = FALSE;
}
- pthread_mutex_unlock(&ui->sensors_mutex);
+ pmutex_unlock(&ui->sensors_mutex);
if (ret == FALSE)
g_timeout_add(1000 * ui->graph_update_interval,
static void log_init()
{
- char *home, *path, *dir;
+ const char *dir;
+ char *path;
- home = getenv("HOME");
+ dir = get_psensor_user_dir();
- if (!home)
+ if (!dir)
return ;
- dir = malloc(strlen(home)+1+strlen(".psensor")+1);
- sprintf(dir, "%s/%s", home, ".psensor");
- mkdir(dir, 0777);
-
path = malloc(strlen(dir)+1+strlen("log")+1);
sprintf(path, "%s/%s", dir, "log");
log_open(path);
- free(dir);
free(path);
}
*/
static void cleanup(struct ui_psensor *ui)
{
- pthread_mutex_lock(&ui->sensors_mutex);
+ pmutex_lock(&ui->sensors_mutex);
log_debug("Cleanup...");
ui_status_cleanup();
- pthread_mutex_unlock(&ui->sensors_mutex);
+ pmutex_unlock(&ui->sensors_mutex);
config_cleanup();
g_thread_init(NULL);
#endif
+#ifdef HAVE_APPINDICATOR_029
+ /* gdk_thread_enter/leave only used to workaround mutex bug
+ * of appindicator < 0.2.9, so do not call gdk_threads_init
+ * if useless. Calling this function leads to
+ * crash "Attempt to unlock mutex that was not locked" with
+ * GLib 2.41.2 (new checking) probably due to bugs in GTK
+ * itself.
+ */
gdk_threads_init();
+#endif
gtk_init(NULL, NULL);
- pthread_mutex_init(&ui.sensors_mutex, NULL);
+ pmutex_init(&ui.sensors_mutex);
ui.config = config_load();