aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--calendar/alarm-notify/config-data.c26
-rw-r--r--calendar/alarm-notify/config-data.h2
-rw-r--r--calendar/alarm-notify/notify-main.c2
-rw-r--r--calendar/gui/calendar-config.c6
-rw-r--r--calendar/gui/e-cal-model.c18
-rw-r--r--calendar/gui/e-meeting-store.c30
-rw-r--r--calendar/gui/gnome-cal.c24
-rw-r--r--composer/e-composer-header-table.c87
-rw-r--r--em-format/e-mail-parser.c13
-rw-r--r--libemail-engine/e-mail-session.c16
-rw-r--r--libemail-engine/mail-folder-cache.c90
-rw-r--r--libemail-utils/mail-mt.c38
-rw-r--r--mail/e-mail-autoconfig.c6
-rw-r--r--mail/importers/elm-importer.c14
-rw-r--r--mail/importers/evolution-mbox-importer.c14
-rw-r--r--mail/importers/pine-importer.c14
-rw-r--r--mail/mail-send-recv.c14
-rw-r--r--mail/message-list.c20
-rw-r--r--mail/message-list.h2
-rw-r--r--modules/book-config-ldap/e-source-ldap.c26
-rw-r--r--modules/cal-config-local/e-source-local.c14
-rw-r--r--modules/cal-config-weather/e-source-weather.c16
-rw-r--r--modules/spamassassin/evolution-spamassassin.c22
-rw-r--r--plugins/bbdb/bbdb.c5
-rw-r--r--plugins/bbdb/gaimbuddies.c5
-rw-r--r--plugins/dbx-import/dbx-importer.c14
-rw-r--r--plugins/external-editor/external-editor.c47
-rw-r--r--plugins/mail-to-task/mail-to-task.c38
-rw-r--r--plugins/pst-import/pst-importer.c14
-rw-r--r--plugins/publish-calendar/publish-calendar.c16
-rw-r--r--shell/e-convert-local-mail.c4
-rw-r--r--shell/e-shell.c25
-rw-r--r--smime/lib/e-cert-trust.c12
-rw-r--r--widgets/misc/e-attachment-bar.c2
-rw-r--r--widgets/misc/e-attachment-paned.c2
-rw-r--r--widgets/misc/e-attachment-tree-view.c2
-rw-r--r--widgets/misc/e-attachment.c2
-rw-r--r--widgets/misc/e-picture-gallery.c2
38 files changed, 345 insertions, 359 deletions
diff --git a/calendar/alarm-notify/config-data.c b/calendar/alarm-notify/config-data.c
index a2f9a2d448..b9f9b7a07d 100644
--- a/calendar/alarm-notify/config-data.c
+++ b/calendar/alarm-notify/config-data.c
@@ -31,7 +31,6 @@
/* Whether we have initied ourselves by reading
* the data from the configuration engine. */
-static gboolean inited = FALSE;
static GSettings *calendar_settings = NULL;
/* Copied from ../calendar-config.c; returns whether the locale has 'am' and
@@ -47,27 +46,22 @@ locale_supports_12_hour_format (void)
return s[0] != '\0';
}
-static void
-do_cleanup (void)
+void
+config_data_cleanup (void)
{
- g_object_unref (calendar_settings);
- calendar_settings = FALSE;
-
- inited = FALSE;
+ if (calendar_settings)
+ g_object_unref (calendar_settings);
+ calendar_settings = NULL;
}
/* Ensures that the configuration values have been read */
static void
ensure_inited (void)
{
- if (inited)
+ if (calendar_settings)
return;
- inited = TRUE;
-
calendar_settings = g_settings_new ("org.gnome.evolution.calendar");
-
- g_atexit ((GVoidFunc) do_cleanup);
}
icaltimezone *
@@ -287,7 +281,7 @@ config_data_is_blessed_program (const gchar *program)
}
static gboolean can_debug = FALSE;
-static GStaticRecMutex rec_mutex = G_STATIC_REC_MUTEX_INIT;
+static GRecMutex rec_mutex;
void
config_data_init_debugging (void)
@@ -301,12 +295,12 @@ config_data_init_debugging (void)
gboolean
config_data_start_debugging (void)
{
- g_static_rec_mutex_lock (&rec_mutex);
+ g_rec_mutex_lock (&rec_mutex);
if (can_debug)
return TRUE;
- g_static_rec_mutex_unlock (&rec_mutex);
+ g_rec_mutex_unlock (&rec_mutex);
return FALSE;
}
@@ -314,5 +308,5 @@ config_data_start_debugging (void)
void
config_data_stop_debugging (void)
{
- g_static_rec_mutex_unlock (&rec_mutex);
+ g_rec_mutex_unlock (&rec_mutex);
}
diff --git a/calendar/alarm-notify/config-data.h b/calendar/alarm-notify/config-data.h
index c97c0f7415..d30781c693 100644
--- a/calendar/alarm-notify/config-data.h
+++ b/calendar/alarm-notify/config-data.h
@@ -29,6 +29,8 @@
#include <libical/ical.h>
#include <libecal/libecal.h>
+void config_data_cleanup (void);
+
icaltimezone * config_data_get_timezone (void);
gboolean config_data_get_24_hour_format (void);
gboolean config_data_get_notify_with_tray
diff --git a/calendar/alarm-notify/notify-main.c b/calendar/alarm-notify/notify-main.c
index c112331a3d..3643ae65e7 100644
--- a/calendar/alarm-notify/notify-main.c
+++ b/calendar/alarm-notify/notify-main.c
@@ -31,6 +31,7 @@
#include <glib/gi18n.h>
#include "alarm-notify.h"
+#include "config-data.h"
#ifdef G_OS_WIN32
#include <windows.h>
@@ -117,6 +118,7 @@ main (gint argc,
G_APPLICATION (alarm_notify_service), argc, argv);
g_object_unref (alarm_notify_service);
+ config_data_cleanup ();
return exit_status;
}
diff --git a/calendar/gui/calendar-config.c b/calendar/gui/calendar-config.c
index 50b370fd0f..b7822da165 100644
--- a/calendar/gui/calendar-config.c
+++ b/calendar/gui/calendar-config.c
@@ -55,7 +55,11 @@ calendar_config_init (void)
return;
config = g_settings_new ("org.gnome.evolution.calendar");
- g_atexit ((GVoidFunc) do_cleanup);
+
+ /* will be freed together with EShell */
+ g_object_set_data_full (G_OBJECT (e_shell_get_default ()),
+ "calendar-config-config-cleanup", (gpointer) "1",
+ (GDestroyNotify) do_cleanup);
}
void
diff --git a/calendar/gui/e-cal-model.c b/calendar/gui/e-cal-model.c
index 8de4244902..3020a70300 100644
--- a/calendar/gui/e-cal-model.c
+++ b/calendar/gui/e-cal-model.c
@@ -123,7 +123,7 @@ struct _ECalModelPrivate {
GHashTable *notify_modified;
GHashTable *notify_removed;
- GMutex *notify_lock;
+ GMutex notify_lock;
GCancellable *loading_clients;
};
@@ -484,7 +484,7 @@ cal_model_finalize (GObject *object)
}
g_ptr_array_free (priv->objects, FALSE);
- g_mutex_free (priv->notify_lock);
+ g_mutex_clear (&priv->notify_lock);
g_hash_table_destroy (priv->notify_added);
g_hash_table_destroy (priv->notify_modified);
@@ -767,7 +767,7 @@ e_cal_model_init (ECalModel *model)
model->priv->notify_added = g_hash_table_new_full (g_direct_hash, g_direct_equal, g_object_unref, NULL);
model->priv->notify_modified = g_hash_table_new_full (g_direct_hash, g_direct_equal, g_object_unref, NULL);
model->priv->notify_removed = g_hash_table_new_full (g_direct_hash, g_direct_equal, g_object_unref, NULL);
- model->priv->notify_lock = g_mutex_new ();
+ g_mutex_init (&model->priv->notify_lock);
model->priv->loading_clients = g_cancellable_new ();
}
@@ -2652,7 +2652,7 @@ process_event (ECalClientView *view,
g_return_if_fail (save_hash != NULL);
- g_mutex_lock (model->priv->notify_lock);
+ g_mutex_lock (&model->priv->notify_lock);
if (*in) {
GSList *save_list = g_hash_table_lookup (save_hash, view);
@@ -2667,7 +2667,7 @@ process_event (ECalClientView *view,
*in = TRUE;
}
- g_mutex_unlock (model->priv->notify_lock);
+ g_mutex_unlock (&model->priv->notify_lock);
if (skip)
return;
@@ -2675,7 +2675,7 @@ process_event (ECalClientView *view,
/* do it */
process_fn (view, objects, model);
- g_mutex_lock (model->priv->notify_lock);
+ g_mutex_lock (&model->priv->notify_lock);
while (g_hash_table_size (save_hash)) {
gpointer key = NULL, value = NULL;
GHashTableIter iter;
@@ -2692,7 +2692,7 @@ process_event (ECalClientView *view,
g_hash_table_remove (save_hash, view);
- g_mutex_unlock (model->priv->notify_lock);
+ g_mutex_unlock (&model->priv->notify_lock);
/* do it */
process_fn (view, save_list, model);
@@ -2705,11 +2705,11 @@ process_event (ECalClientView *view,
g_slist_free (save_list);
g_object_unref (view);
- g_mutex_lock (model->priv->notify_lock);
+ g_mutex_lock (&model->priv->notify_lock);
}
*in = FALSE;
- g_mutex_unlock (model->priv->notify_lock);
+ g_mutex_unlock (&model->priv->notify_lock);
}
static void
diff --git a/calendar/gui/e-meeting-store.c b/calendar/gui/e-meeting-store.c
index 0aaf8fed80..3449d5e0cb 100644
--- a/calendar/gui/e-meeting-store.c
+++ b/calendar/gui/e-meeting-store.c
@@ -64,7 +64,7 @@ struct _EMeetingStorePrivate {
GPtrArray *refresh_queue;
GHashTable *refresh_data;
- GMutex *mutex;
+ GMutex mutex;
guint refresh_idle_id;
guint num_threads;
@@ -617,11 +617,11 @@ refresh_queue_remove (EMeetingStore *store,
}
if (qdata) {
- g_mutex_lock (priv->mutex);
+ g_mutex_lock (&priv->mutex);
g_hash_table_remove (
priv->refresh_data, itip_strip_mailto (
e_meeting_attendee_get_address (attendee)));
- g_mutex_unlock (priv->mutex);
+ g_mutex_unlock (&priv->mutex);
g_ptr_array_free (qdata->call_backs, TRUE);
g_ptr_array_free (qdata->data, TRUE);
g_free (qdata);
@@ -759,7 +759,7 @@ meeting_store_finalize (GObject *object)
g_free (priv->fb_uri);
- g_mutex_free (priv->mutex);
+ g_mutex_clear (&priv->mutex);
/* Chain up to parent's finalize() method. */
G_OBJECT_CLASS (e_meeting_store_parent_class)->finalize (object);
@@ -852,7 +852,7 @@ e_meeting_store_init (EMeetingStore *store)
store->priv->refresh_data = g_hash_table_new_full (
g_str_hash, g_str_equal, g_free, NULL);
- store->priv->mutex = g_mutex_new ();
+ g_mutex_init (&store->priv->mutex);
store->priv->num_queries = 0;
@@ -1331,9 +1331,9 @@ process_callbacks (EMeetingStoreQueueData *qdata)
g_idle_add ((GSourceFunc) call_back, data);
}
- g_mutex_lock (store->priv->mutex);
+ g_mutex_lock (&store->priv->mutex);
store->priv->num_threads--;
- g_mutex_unlock (store->priv->mutex);
+ g_mutex_unlock (&store->priv->mutex);
refresh_queue_remove (qdata->store, qdata->attendee);
g_object_unref (store);
@@ -1710,11 +1710,11 @@ refresh_busy_periods (gpointer data)
}
- g_mutex_lock (store->priv->mutex);
+ g_mutex_lock (&store->priv->mutex);
store->priv->num_threads++;
- g_mutex_unlock (store->priv->mutex);
+ g_mutex_unlock (&store->priv->mutex);
- thread = g_thread_create ((GThreadFunc) freebusy_async, fbd, FALSE, &error);
+ thread = g_thread_try_new (NULL, (GThreadFunc) freebusy_async, fbd, &error);
if (!thread) {
/* do clean up stuff here */
g_slist_foreach (fbd->users, (GFunc) g_free, NULL);
@@ -1722,13 +1722,15 @@ refresh_busy_periods (gpointer data)
g_free (fbd->email);
priv->refresh_idle_id = 0;
- g_mutex_lock (store->priv->mutex);
+ g_mutex_lock (&store->priv->mutex);
store->priv->num_threads--;
- g_mutex_unlock (store->priv->mutex);
+ g_mutex_unlock (&store->priv->mutex);
return FALSE;
}
+ g_thread_unref (thread);
+
return TRUE;
}
@@ -1763,7 +1765,7 @@ refresh_queue_add (EMeetingStore *store,
return;
}
- g_mutex_lock (priv->mutex);
+ g_mutex_lock (&priv->mutex);
qdata = g_hash_table_lookup (
priv->refresh_data, itip_strip_mailto (
e_meeting_attendee_get_address (attendee)));
@@ -1795,7 +1797,7 @@ refresh_queue_add (EMeetingStore *store,
g_ptr_array_add (qdata->call_backs, call_back);
g_ptr_array_add (qdata->data, data);
}
- g_mutex_unlock (priv->mutex);
+ g_mutex_unlock (&priv->mutex);
g_object_ref (attendee);
g_ptr_array_add (priv->refresh_queue, attendee);
diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c
index 4a37108fb0..b98857e717 100644
--- a/calendar/gui/gnome-cal.c
+++ b/calendar/gui/gnome-cal.c
@@ -89,7 +89,7 @@ struct _GnomeCalendarPrivate {
GtkWidget *task_table; /* ETaskTable, but can be NULL */
/* Calendar query for the date navigator */
- GMutex *dn_query_lock;
+ GMutex dn_query_lock;
GList *dn_queries; /* list of CalQueries */
gchar *sexp;
gchar *todo_sexp;
@@ -128,7 +128,7 @@ struct _GnomeCalendarPrivate {
/* Used in update_todo_view, to prevent interleaving when
* called in separate thread. */
- GMutex *todo_update_lock;
+ GMutex todo_update_lock;
GCancellable *cancellable;
};
@@ -1118,7 +1118,7 @@ free_dn_queries (GnomeCalendar *gcal)
priv = gcal->priv;
- g_mutex_lock (priv->dn_query_lock);
+ g_mutex_lock (&priv->dn_query_lock);
for (l = priv->dn_queries; l != NULL; l = l->next) {
if (!l->data)
@@ -1131,7 +1131,7 @@ free_dn_queries (GnomeCalendar *gcal)
g_list_free (priv->dn_queries);
priv->dn_queries = NULL;
- g_mutex_unlock (priv->dn_query_lock);
+ g_mutex_unlock (&priv->dn_query_lock);
}
static void
@@ -1200,7 +1200,7 @@ update_query_async (struct _date_query_msg *msg)
new_view, "complete",
G_CALLBACK (dn_client_view_complete_cb), gcal);
- g_mutex_lock (priv->dn_query_lock);
+ g_mutex_lock (&priv->dn_query_lock);
priv->dn_queries = g_list_append (priv->dn_queries, new_view);
e_cal_client_view_start (new_view, &error);
if (error != NULL) {
@@ -1209,7 +1209,7 @@ update_query_async (struct _date_query_msg *msg)
G_STRFUNC, error->message);
g_clear_error (&error);
}
- g_mutex_unlock (priv->dn_query_lock);
+ g_mutex_unlock (&priv->dn_query_lock);
}
g_list_foreach (list, (GFunc) g_object_unref, NULL);
@@ -1315,7 +1315,7 @@ update_todo_view_async (struct _mupdate_todo_msg *msg)
g_return_if_fail (priv->task_table != NULL);
- g_mutex_lock (priv->todo_update_lock);
+ g_mutex_lock (&priv->todo_update_lock);
/* Set the query on the task pad */
if (priv->todo_sexp) {
@@ -1337,7 +1337,7 @@ update_todo_view_async (struct _mupdate_todo_msg *msg)
update_memo_view (msg->gcal);
- g_mutex_unlock (priv->todo_update_lock);
+ g_mutex_unlock (&priv->todo_update_lock);
}
static gboolean
@@ -1494,8 +1494,8 @@ gnome_calendar_init (GnomeCalendar *gcal)
{
gcal->priv = GNOME_CALENDAR_GET_PRIVATE (gcal);
- gcal->priv->todo_update_lock = g_mutex_new ();
- gcal->priv->dn_query_lock = g_mutex_new ();
+ g_mutex_init (&gcal->priv->todo_update_lock);
+ g_mutex_init (&gcal->priv->dn_query_lock);
gcal->priv->current_view_type = GNOME_CAL_WORK_WEEK_VIEW;
gcal->priv->range_selected = FALSE;
@@ -1578,8 +1578,8 @@ gnome_calendar_finalize (GObject *object)
priv = GNOME_CALENDAR_GET_PRIVATE (object);
- g_mutex_free (priv->todo_update_lock);
- g_mutex_free (priv->dn_query_lock);
+ g_mutex_clear (&priv->todo_update_lock);
+ g_mutex_clear (&priv->dn_query_lock);
/* Chain up to parent's finalize() method. */
G_OBJECT_CLASS (gnome_calendar_parent_class)->finalize (object);
diff --git a/composer/e-composer-header-table.c b/composer/e-composer-header-table.c
index 1290a6784f..72c8dacaa8 100644
--- a/composer/e-composer-header-table.c
+++ b/composer/e-composer-header-table.c
@@ -86,37 +86,33 @@ static void
g_value_set_destinations (GValue *value,
EDestination **destinations)
{
- GValueArray *value_array;
- GValue element = G_VALUE_INIT;
+ GPtrArray *array;
gint ii;
- g_value_init (&element, E_TYPE_DESTINATION);
-
/* Preallocate some reasonable number. */
- value_array = g_value_array_new (64);
+ array = g_ptr_array_new_full (64, g_object_unref);
for (ii = 0; destinations[ii] != NULL; ii++) {
- g_value_set_object (&element, destinations[ii]);
- g_value_array_append (value_array, &element);
+ g_ptr_array_add (array, e_destination_copy (destinations[ii]));
}
- g_value_take_boxed (value, value_array);
+ g_value_take_boxed (value, array);
}
static EDestination **
g_value_dup_destinations (const GValue *value)
{
EDestination **destinations;
- GValueArray *value_array;
- GValue *element;
- gint ii;
+ const EDestination *dest;
+ GPtrArray *array;
+ guint ii;
- value_array = g_value_get_boxed (value);
- destinations = g_new0 (EDestination *, value_array->n_values + 1);
+ array = g_value_get_boxed (value);
+ destinations = g_new0 (EDestination *, array->len + 1);
- for (ii = 0; ii < value_array->n_values; ii++) {
- element = g_value_array_get_nth (value_array, ii);
- destinations[ii] = g_value_dup_object (element);
+ for (ii = 0; ii < array->len; ii++) {
+ dest = g_ptr_array_index (array, ii);
+ destinations[ii] = e_destination_copy (dest);
}
return destinations;
@@ -126,34 +122,30 @@ static void
g_value_set_string_list (GValue *value,
GList *list)
{
- GValueArray *value_array;
- GValue element = G_VALUE_INIT;
+ GPtrArray *array;
- g_value_init (&element, G_TYPE_STRING);
-
- value_array = g_value_array_new (g_list_length (list));
+ array = g_ptr_array_new_full (g_list_length (list), g_free);
while (list != NULL) {
- g_value_set_string (&element, list->data);
- g_value_array_append (value_array, &element);
+ g_ptr_array_add (array, g_strdup (list->data));
+ list = list->next;
}
- g_value_take_boxed (value, value_array);
+ g_value_take_boxed (value, array);
}
static GList *
g_value_dup_string_list (const GValue *value)
{
- GValueArray *value_array;
+ GPtrArray *array;
GList *list = NULL;
- GValue *element;
gint ii;
- value_array = g_value_get_boxed (value);
+ array = g_value_get_boxed (value);
- for (ii = 0; ii < value_array->n_values; ii++) {
- element = g_value_array_get_nth (value_array, ii);
- list = g_list_prepend (list, g_value_dup_string (element));
+ for (ii = 0; ii < array->len; ii++) {
+ const gchar *element = g_ptr_array_index (array, ii);
+ list = g_list_prepend (list, g_strdup (element));
}
return g_list_reverse (list);
@@ -963,7 +955,6 @@ static void
e_composer_header_table_class_init (EComposerHeaderTableClass *class)
{
GObjectClass *object_class;
- GParamSpec *element_spec;
g_type_class_add_private (class, sizeof (EComposerHeaderTablePrivate));
@@ -973,45 +964,36 @@ e_composer_header_table_class_init (EComposerHeaderTableClass *class)
object_class->dispose = composer_header_table_dispose;
object_class->constructed = composer_header_table_constructed;
- /* floating reference */
- element_spec = g_param_spec_object (
- "value-array-element",
- NULL,
- NULL,
- E_TYPE_DESTINATION,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS);
-
g_object_class_install_property (
object_class,
PROP_DESTINATIONS_BCC,
- g_param_spec_value_array (
+ g_param_spec_boxed (
"destinations-bcc",
NULL,
NULL,
- element_spec,
+ G_TYPE_PTR_ARRAY,
G_PARAM_READWRITE |
G_PARAM_STATIC_STRINGS));
g_object_class_install_property (
object_class,
PROP_DESTINATIONS_CC,
- g_param_spec_value_array (
+ g_param_spec_boxed (
"destinations-cc",
NULL,
NULL,
- element_spec,
+ G_TYPE_PTR_ARRAY,
G_PARAM_READWRITE |
G_PARAM_STATIC_STRINGS));
g_object_class_install_property (
object_class,
PROP_DESTINATIONS_TO,
- g_param_spec_value_array (
+ g_param_spec_boxed (
"destinations-to",
NULL,
NULL,
- element_spec,
+ G_TYPE_PTR_ARRAY,
G_PARAM_READWRITE |
G_PARAM_STATIC_STRINGS));
@@ -1026,23 +1008,14 @@ e_composer_header_table_class_init (EComposerHeaderTableClass *class)
G_PARAM_READWRITE |
G_PARAM_STATIC_STRINGS));
- /* floating reference */
- element_spec = g_param_spec_string (
- "value-array-element",
- NULL,
- NULL,
- NULL,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS);
-
g_object_class_install_property (
object_class,
PROP_POST_TO,
- g_param_spec_value_array (
+ g_param_spec_boxed (
"post-to",
NULL,
NULL,
- element_spec,
+ G_TYPE_PTR_ARRAY,
G_PARAM_READWRITE |
G_PARAM_STATIC_STRINGS));
diff --git a/em-format/e-mail-parser.c b/em-format/e-mail-parser.c
index c718f79425..69d74af623 100644
--- a/em-format/e-mail-parser.c
+++ b/em-format/e-mail-parser.c
@@ -37,7 +37,7 @@
static gpointer parent_class = 0;
struct _EMailParserPrivate {
- GMutex *mutex;
+ GMutex mutex;
gint last_error;
@@ -176,10 +176,7 @@ e_mail_parser_finalize (GObject *object)
priv = E_MAIL_PARSER (object)->priv;
- if (priv->mutex) {
- g_mutex_free (priv->mutex);
- priv->mutex = NULL;
- }
+ g_mutex_clear (&priv->mutex);
G_OBJECT_CLASS (parent_class)->finalize (object);
}
@@ -188,7 +185,7 @@ e_mail_parser_init (EMailParser *parser)
{
parser->priv = E_MAIL_PARSER_GET_PRIVATE (parser);
- parser->priv->mutex = g_mutex_new ();
+ g_mutex_init (&parser->priv->mutex);
}
static void
@@ -529,10 +526,10 @@ e_mail_parser_error (EMailParser *parser,
g_free (errmsg);
va_end (ap);
- g_mutex_lock (parser->priv->mutex);
+ g_mutex_lock (&parser->priv->mutex);
parser->priv->last_error++;
uri = g_strdup_printf (".error.%d", parser->priv->last_error);
- g_mutex_unlock (parser->priv->mutex);
+ g_mutex_unlock (&parser->priv->mutex);
mail_part = e_mail_part_new (part, uri);
mail_part->mime_type = g_strdup ("application/vnd.evolution.error");
diff --git a/libemail-engine/e-mail-session.c b/libemail-engine/e-mail-session.c
index 63d5792965..aa3adefd12 100644
--- a/libemail-engine/e-mail-session.c
+++ b/libemail-engine/e-mail-session.c
@@ -90,7 +90,7 @@ struct _EMailSessionPrivate {
GPtrArray *local_folder_uris;
guint preparing_flush;
- GMutex *preparing_flush_lock;
+ GMutex preparing_flush_lock;
};
struct _AsyncContext {
@@ -275,9 +275,9 @@ session_forward_to_flush_outbox_cb (gpointer user_data)
{
EMailSession *session = E_MAIL_SESSION (user_data);
- g_mutex_lock (session->priv->preparing_flush_lock);
- session->priv->preparing_flush_lock = 0;
- g_mutex_unlock (session->priv->preparing_flush_lock);
+ g_mutex_lock (&session->priv->preparing_flush_lock);
+ session->priv->preparing_flush = 0;
+ g_mutex_unlock (&session->priv->preparing_flush_lock);
/* Connect to this and call mail_send in the main email client.*/
g_signal_emit (session, signals[FLUSH_OUTBOX], 0);
@@ -1012,7 +1012,7 @@ mail_session_finalize (GObject *object)
g_ptr_array_free (priv->local_folders, TRUE);
g_ptr_array_free (priv->local_folder_uris, TRUE);
- g_mutex_free (priv->preparing_flush_lock);
+ g_mutex_clear (&priv->preparing_flush_lock);
g_free (mail_data_dir);
g_free (mail_config_dir);
@@ -1685,7 +1685,7 @@ mail_session_forward_to_sync (CamelSession *session,
flush_outbox = g_settings_get_boolean (settings, "flush-outbox");
g_object_unref (settings);
- g_mutex_lock (priv->preparing_flush_lock);
+ g_mutex_lock (&priv->preparing_flush_lock);
if (priv->preparing_flush > 0) {
g_source_remove (priv->preparing_flush);
@@ -1710,7 +1710,7 @@ mail_session_forward_to_sync (CamelSession *session,
g_source_unref (timeout_source);
}
- g_mutex_unlock (priv->preparing_flush_lock);
+ g_mutex_unlock (&priv->preparing_flush_lock);
}
camel_message_info_free (info);
@@ -1915,7 +1915,7 @@ e_mail_session_init (EMailSession *session)
g_ptr_array_new_with_free_func (
(GDestroyNotify) g_free);
- session->priv->preparing_flush_lock = g_mutex_new ();
+ g_mutex_init (&session->priv->preparing_flush_lock);
}
EMailSession *
diff --git a/libemail-engine/mail-folder-cache.c b/libemail-engine/mail-folder-cache.c
index 5561bb65f9..4d82557467 100644
--- a/libemail-engine/mail-folder-cache.c
+++ b/libemail-engine/mail-folder-cache.c
@@ -67,7 +67,7 @@ struct _MailFolderCachePrivate {
/* Store to storeinfo table, active stores */
GHashTable *stores;
/* mutex to protect access to the stores hash */
- GStaticRecMutex stores_mutex;
+ GRecMutex stores_mutex;
/* List of folder changes to be executed in gui thread */
GQueue updates;
/* idle source id for flushing all pending updates */
@@ -228,9 +228,9 @@ flush_updates_idle_cb (MailFolderCache *cache)
{
struct _folder_update *up;
- g_static_rec_mutex_lock (&cache->priv->stores_mutex);
+ g_rec_mutex_lock (&cache->priv->stores_mutex);
while ((up = g_queue_pop_head (&cache->priv->updates)) != NULL) {
- g_static_rec_mutex_unlock (&cache->priv->stores_mutex);
+ g_rec_mutex_unlock (&cache->priv->stores_mutex);
if (up->remove) {
if (up->delete) {
@@ -287,10 +287,10 @@ flush_updates_idle_cb (MailFolderCache *cache)
free_update (up);
- g_static_rec_mutex_lock (&cache->priv->stores_mutex);
+ g_rec_mutex_lock (&cache->priv->stores_mutex);
}
cache->priv->update_id = 0;
- g_static_rec_mutex_unlock (&cache->priv->stores_mutex);
+ g_rec_mutex_unlock (&cache->priv->stores_mutex);
return FALSE;
}
@@ -490,14 +490,14 @@ folder_changed_cb (CamelFolder *folder,
last_newmail_per_folder, folder,
GINT_TO_POINTER (new_latest_received));
- g_static_rec_mutex_lock (&cache->priv->stores_mutex);
+ g_rec_mutex_lock (&cache->priv->stores_mutex);
if (cache->priv->stores != NULL
&& (si = g_hash_table_lookup (cache->priv->stores, parent_store)) != NULL
&& (mfi = g_hash_table_lookup (si->folders, full_name)) != NULL
&& mfi->folder == folder) {
update_1folder (cache, mfi, new, uid, sender, subject, NULL);
}
- g_static_rec_mutex_unlock (&cache->priv->stores_mutex);
+ g_rec_mutex_unlock (&cache->priv->stores_mutex);
g_free (uid);
g_free (sender);
@@ -593,11 +593,11 @@ store_folder_subscribed_cb (CamelStore *store,
{
StoreInfo *si;
- g_static_rec_mutex_lock (&cache->priv->stores_mutex);
+ g_rec_mutex_lock (&cache->priv->stores_mutex);
si = g_hash_table_lookup (cache->priv->stores, store);
if (si)
setup_folder (cache, info, si);
- g_static_rec_mutex_unlock (&cache->priv->stores_mutex);
+ g_rec_mutex_unlock (&cache->priv->stores_mutex);
}
static void
@@ -627,7 +627,7 @@ store_folder_unsubscribed_cb (CamelStore *store,
StoreInfo *si;
struct _folder_info *mfi;
- g_static_rec_mutex_lock (&cache->priv->stores_mutex);
+ g_rec_mutex_lock (&cache->priv->stores_mutex);
si = g_hash_table_lookup (cache->priv->stores, store);
if (si) {
mfi = g_hash_table_lookup (si->folders, info->full_name);
@@ -636,7 +636,7 @@ store_folder_unsubscribed_cb (CamelStore *store,
g_hash_table_remove (si->folders, mfi->full_name);
}
}
- g_static_rec_mutex_unlock (&cache->priv->stores_mutex);
+ g_rec_mutex_unlock (&cache->priv->stores_mutex);
}
static void
@@ -754,7 +754,7 @@ store_folder_renamed_cb (CamelStore *store,
{
StoreInfo *si;
- g_static_rec_mutex_lock (&cache->priv->stores_mutex);
+ g_rec_mutex_lock (&cache->priv->stores_mutex);
si = g_hash_table_lookup (cache->priv->stores, store);
if (si) {
GPtrArray *folders = g_ptr_array_new ();
@@ -774,7 +774,7 @@ store_folder_renamed_cb (CamelStore *store,
g_ptr_array_free (folders, TRUE);
}
- g_static_rec_mutex_unlock (&cache->priv->stores_mutex);
+ g_rec_mutex_unlock (&cache->priv->stores_mutex);
}
static void
@@ -835,7 +835,7 @@ update_folders (CamelStore *store,
g_error_free (error);
}
- g_static_rec_mutex_lock (&ud->cache->priv->stores_mutex);
+ g_rec_mutex_lock (&ud->cache->priv->stores_mutex);
si = g_hash_table_lookup (ud->cache->priv->stores, store);
if (si && !g_cancellable_is_cancelled (ud->cancellable)) {
/* The 'si' is still there, so we can remove ourselves from
@@ -846,7 +846,7 @@ update_folders (CamelStore *store,
if (fi != NULL)
create_folders (ud->cache, fi, si);
}
- g_static_rec_mutex_unlock (&ud->cache->priv->stores_mutex);
+ g_rec_mutex_unlock (&ud->cache->priv->stores_mutex);
/* Do some extra work for the first update. */
if (si != NULL && si->first_update) {
@@ -945,11 +945,11 @@ ping_store (CamelStore *store)
static gboolean
ping_cb (MailFolderCache *cache)
{
- g_static_rec_mutex_lock (&cache->priv->stores_mutex);
+ g_rec_mutex_lock (&cache->priv->stores_mutex);
g_hash_table_foreach (cache->priv->stores, (GHFunc) ping_store, NULL);
- g_static_rec_mutex_unlock (&cache->priv->stores_mutex);
+ g_rec_mutex_unlock (&cache->priv->stores_mutex);
return TRUE;
}
@@ -980,7 +980,7 @@ store_go_online_cb (CamelStore *store,
{
/* FIXME Not checking result for error. */
- g_static_rec_mutex_lock (&ud->cache->priv->stores_mutex);
+ g_rec_mutex_lock (&ud->cache->priv->stores_mutex);
if (g_hash_table_lookup (ud->cache->priv->stores, store) != NULL &&
!g_cancellable_is_cancelled (ud->cancellable)) {
@@ -1001,7 +1001,7 @@ store_go_online_cb (CamelStore *store,
g_free (ud);
}
- g_static_rec_mutex_unlock (&ud->cache->priv->stores_mutex);
+ g_rec_mutex_unlock (&ud->cache->priv->stores_mutex);
}
static GList *
@@ -1120,7 +1120,7 @@ mail_folder_cache_finalize (GObject *object)
priv = MAIL_FOLDER_CACHE_GET_PRIVATE (object);
g_hash_table_destroy (priv->stores);
- g_static_rec_mutex_free (&priv->stores_mutex);
+ g_rec_mutex_clear (&priv->stores_mutex);
if (priv->ping_id > 0) {
g_source_remove (priv->ping_id);
@@ -1172,7 +1172,7 @@ mail_folder_cache_folder_available (MailFolderCache *cache,
provider = camel_service_get_provider (service);
/* Reuse the stores mutex just because it's handy. */
- g_static_rec_mutex_lock (&cache->priv->stores_mutex);
+ g_rec_mutex_lock (&cache->priv->stores_mutex);
folder_uri = e_mail_folder_uri_build (store, folder_name);
@@ -1186,7 +1186,7 @@ mail_folder_cache_folder_available (MailFolderCache *cache,
else
g_free (folder_uri);
- g_static_rec_mutex_unlock (&cache->priv->stores_mutex);
+ g_rec_mutex_unlock (&cache->priv->stores_mutex);
}
static void
@@ -1220,7 +1220,7 @@ mail_folder_cache_folder_unavailable (MailFolderCache *cache,
provider = camel_service_get_provider (service);
/* Reuse the stores mutex just because it's handy. */
- g_static_rec_mutex_lock (&cache->priv->stores_mutex);
+ g_rec_mutex_lock (&cache->priv->stores_mutex);
folder_uri = e_mail_folder_uri_build (store, folder_name);
@@ -1237,7 +1237,7 @@ mail_folder_cache_folder_unavailable (MailFolderCache *cache,
g_free (folder_uri);
- g_static_rec_mutex_unlock (&cache->priv->stores_mutex);
+ g_rec_mutex_unlock (&cache->priv->stores_mutex);
}
static void
@@ -1269,7 +1269,7 @@ mail_folder_cache_folder_deleted (MailFolderCache *cache,
session = camel_service_get_session (service);
/* Reuse the stores mutex just because it's handy. */
- g_static_rec_mutex_lock (&cache->priv->stores_mutex);
+ g_rec_mutex_lock (&cache->priv->stores_mutex);
folder_uri = e_mail_folder_uri_build (store, folder_name);
@@ -1289,7 +1289,7 @@ mail_folder_cache_folder_deleted (MailFolderCache *cache,
g_free (folder_uri);
- g_static_rec_mutex_unlock (&cache->priv->stores_mutex);
+ g_rec_mutex_unlock (&cache->priv->stores_mutex);
}
static void
@@ -1450,7 +1450,7 @@ mail_folder_cache_init (MailFolderCache *cache)
/* initialize values */
cache->priv->stores = g_hash_table_new (NULL, NULL);
- g_static_rec_mutex_init (&cache->priv->stores_mutex);
+ g_rec_mutex_init (&cache->priv->stores_mutex);
g_queue_init (&cache->priv->updates);
cache->priv->count_sent = getenv ("EVOLUTION_COUNT_SENT") != NULL;
@@ -1507,7 +1507,7 @@ mail_folder_cache_note_store (MailFolderCache *cache,
session = camel_service_get_session (CAMEL_SERVICE (store));
- g_static_rec_mutex_lock (&cache->priv->stores_mutex);
+ g_rec_mutex_lock (&cache->priv->stores_mutex);
si = g_hash_table_lookup (cache->priv->stores, store);
if (si == NULL) {
@@ -1561,7 +1561,7 @@ mail_folder_cache_note_store (MailFolderCache *cache,
g_queue_push_tail (&si->folderinfo_updates, ud);
- g_static_rec_mutex_unlock (&cache->priv->stores_mutex);
+ g_rec_mutex_unlock (&cache->priv->stores_mutex);
/* there is potential for race here, but it is safe as we check
* for the store anyway */
@@ -1612,18 +1612,18 @@ mail_folder_cache_note_folder (MailFolderCache *cache,
full_name = camel_folder_get_full_name (folder);
parent_store = camel_folder_get_parent_store (folder);
- g_static_rec_mutex_lock (&cache->priv->stores_mutex);
+ g_rec_mutex_lock (&cache->priv->stores_mutex);
if (cache->priv->stores == NULL
|| (si = g_hash_table_lookup (cache->priv->stores, parent_store)) == NULL
|| (mfi = g_hash_table_lookup (si->folders, full_name)) == NULL) {
w (g_warning ("Noting folder before store initialised"));
- g_static_rec_mutex_unlock (&cache->priv->stores_mutex);
+ g_rec_mutex_unlock (&cache->priv->stores_mutex);
return;
}
/* dont do anything if we already have this */
if (mfi->folder == folder) {
- g_static_rec_mutex_unlock (&cache->priv->stores_mutex);
+ g_rec_mutex_unlock (&cache->priv->stores_mutex);
return;
}
@@ -1633,7 +1633,7 @@ mail_folder_cache_note_folder (MailFolderCache *cache,
update_1folder (cache, mfi, 0, NULL, NULL, NULL, NULL);
- g_static_rec_mutex_unlock (&cache->priv->stores_mutex);
+ g_rec_mutex_unlock (&cache->priv->stores_mutex);
g_signal_connect (
folder, "changed",
@@ -1658,7 +1658,7 @@ mail_folder_cache_get_folder_from_uri (MailFolderCache *cache,
if (cache->priv->stores == NULL)
return FALSE;
- g_static_rec_mutex_lock (&cache->priv->stores_mutex);
+ g_rec_mutex_lock (&cache->priv->stores_mutex);
g_hash_table_foreach (
cache->priv->stores, (GHFunc)
storeinfo_find_folder_info, &fi);
@@ -1668,7 +1668,7 @@ mail_folder_cache_get_folder_from_uri (MailFolderCache *cache,
else
*folderp = NULL;
}
- g_static_rec_mutex_unlock (&cache->priv->stores_mutex);
+ g_rec_mutex_unlock (&cache->priv->stores_mutex);
return fi.fi != NULL;
}
@@ -1687,7 +1687,7 @@ mail_folder_cache_get_folder_info_flags (MailFolderCache *cache,
folder_uri = e_mail_folder_uri_from_folder (folder);
fi.folder_uri = folder_uri;
- g_static_rec_mutex_lock (&cache->priv->stores_mutex);
+ g_rec_mutex_lock (&cache->priv->stores_mutex);
g_hash_table_foreach (
cache->priv->stores, (GHFunc)
storeinfo_find_folder_info, &fi);
@@ -1697,7 +1697,7 @@ mail_folder_cache_get_folder_info_flags (MailFolderCache *cache,
else
*flags = 0;
}
- g_static_rec_mutex_unlock (&cache->priv->stores_mutex);
+ g_rec_mutex_unlock (&cache->priv->stores_mutex);
g_free (folder_uri);
@@ -1723,13 +1723,13 @@ mail_folder_cache_get_folder_has_children (MailFolderCache *cache,
folder_uri = e_mail_folder_uri_from_folder (folder);
fi.folder_uri = folder_uri;
- g_static_rec_mutex_lock (&cache->priv->stores_mutex);
+ g_rec_mutex_lock (&cache->priv->stores_mutex);
g_hash_table_foreach (
cache->priv->stores, (GHFunc)
storeinfo_find_folder_info, &fi);
if (found != NULL)
*found = fi.fi != NULL;
- g_static_rec_mutex_unlock (&cache->priv->stores_mutex);
+ g_rec_mutex_unlock (&cache->priv->stores_mutex);
g_free (folder_uri);
@@ -1746,14 +1746,14 @@ mail_folder_cache_get_local_folder_uris (MailFolderCache *self,
g_return_if_fail (out_queue != NULL);
/* Reuse the stores mutex just because it's handy. */
- g_static_rec_mutex_lock (&self->priv->stores_mutex);
+ g_rec_mutex_lock (&self->priv->stores_mutex);
head = g_queue_peek_head_link (&self->priv->local_folder_uris);
for (link = head; link != NULL; link = g_list_next (link))
g_queue_push_tail (out_queue, g_strdup (link->data));
- g_static_rec_mutex_unlock (&self->priv->stores_mutex);
+ g_rec_mutex_unlock (&self->priv->stores_mutex);
}
void
@@ -1766,14 +1766,14 @@ mail_folder_cache_get_remote_folder_uris (MailFolderCache *self,
g_return_if_fail (out_queue != NULL);
/* Reuse the stores mutex just because it's handy. */
- g_static_rec_mutex_lock (&self->priv->stores_mutex);
+ g_rec_mutex_lock (&self->priv->stores_mutex);
head = g_queue_peek_head_link (&self->priv->remote_folder_uris);
for (link = head; link != NULL; link = g_list_next (link))
g_queue_push_tail (out_queue, g_strdup (link->data));
- g_static_rec_mutex_unlock (&self->priv->stores_mutex);
+ g_rec_mutex_unlock (&self->priv->stores_mutex);
}
void
@@ -1788,7 +1788,7 @@ mail_folder_cache_service_removed (MailFolderCache *cache,
if (cache->priv->stores == NULL)
return;
- g_static_rec_mutex_lock (&cache->priv->stores_mutex);
+ g_rec_mutex_lock (&cache->priv->stores_mutex);
si = g_hash_table_lookup (cache->priv->stores, service);
if (si != NULL) {
@@ -1805,7 +1805,7 @@ mail_folder_cache_service_removed (MailFolderCache *cache,
store_info_free (si);
}
- g_static_rec_mutex_unlock (&cache->priv->stores_mutex);
+ g_rec_mutex_unlock (&cache->priv->stores_mutex);
}
void
diff --git a/libemail-utils/mail-mt.c b/libemail-utils/mail-mt.c
index 24a83db747..d7ed6922de 100644
--- a/libemail-utils/mail-mt.c
+++ b/libemail-utils/mail-mt.c
@@ -41,8 +41,8 @@ static guint mail_msg_seq; /* sequence number of each message */
/* Table of active messages. Must hold mail_msg_lock to access. */
static GHashTable *mail_msg_active_table;
-static GMutex *mail_msg_lock;
-static GCond *mail_msg_cond;
+static GMutex mail_msg_lock;
+static GCond mail_msg_cond;
static MailMsgCreateActivityFunc create_activity = NULL;
static MailMsgSubmitActivityFunc submit_activity = NULL;
@@ -102,7 +102,7 @@ mail_msg_new (MailMsgInfo *info)
{
MailMsg *msg;
- g_mutex_lock (mail_msg_lock);
+ g_mutex_lock (&mail_msg_lock);
msg = g_slice_alloc0 (info->size);
msg->info = info;
@@ -124,7 +124,7 @@ mail_msg_new (MailMsgInfo *info)
d (printf ("New message %p\n", msg));
- g_mutex_unlock (mail_msg_lock);
+ g_mutex_unlock (&mail_msg_lock);
return msg;
}
@@ -205,14 +205,14 @@ mail_msg_unref (gpointer msg)
if (mail_msg->info->free)
mail_msg->info->free (mail_msg);
- g_mutex_lock (mail_msg_lock);
+ g_mutex_lock (&mail_msg_lock);
g_hash_table_remove (
mail_msg_active_table,
GINT_TO_POINTER (mail_msg->seq));
- g_cond_broadcast (mail_msg_cond);
+ g_cond_broadcast (&mail_msg_cond);
- g_mutex_unlock (mail_msg_lock);
+ g_mutex_unlock (&mail_msg_lock);
/* Destroy the message from an idle callback
* so we know we're in the main loop thread. */
@@ -270,7 +270,7 @@ mail_msg_cancel (guint msgid)
MailMsg *msg;
GCancellable *cancellable = NULL;
- g_mutex_lock (mail_msg_lock);
+ g_mutex_lock (&mail_msg_lock);
msg = g_hash_table_lookup (
mail_msg_active_table, GINT_TO_POINTER (msgid));
@@ -285,7 +285,7 @@ mail_msg_cancel (guint msgid)
g_object_ref (cancellable);
}
- g_mutex_unlock (mail_msg_lock);
+ g_mutex_unlock (&mail_msg_lock);
if (cancellable != NULL) {
g_cancellable_cancel (cancellable);
@@ -298,9 +298,9 @@ mail_msg_active (void)
{
gboolean active;
- g_mutex_lock (mail_msg_lock);
+ g_mutex_lock (&mail_msg_lock);
active = g_hash_table_size (mail_msg_active_table) > 0;
- g_mutex_unlock (mail_msg_lock);
+ g_mutex_unlock (&mail_msg_lock);
return active;
}
@@ -315,7 +315,7 @@ mail_cancel_hook_add (GHookFunc func,
{
GHook *hook;
- g_mutex_lock (mail_msg_lock);
+ g_mutex_lock (&mail_msg_lock);
if (!cancel_hook_list.is_setup)
g_hook_list_init (&cancel_hook_list, sizeof (GHook));
@@ -326,7 +326,7 @@ mail_cancel_hook_add (GHookFunc func,
g_hook_append (&cancel_hook_list, hook);
- g_mutex_unlock (mail_msg_lock);
+ g_mutex_unlock (&mail_msg_lock);
return hook;
}
@@ -334,12 +334,12 @@ mail_cancel_hook_add (GHookFunc func,
void
mail_cancel_hook_remove (GHook *hook)
{
- g_mutex_lock (mail_msg_lock);
+ g_mutex_lock (&mail_msg_lock);
g_return_if_fail (cancel_hook_list.is_setup);
g_hook_destroy_link (&cancel_hook_list, hook);
- g_mutex_unlock (mail_msg_lock);
+ g_mutex_unlock (&mail_msg_lock);
}
void
@@ -347,12 +347,12 @@ mail_cancel_all (void)
{
camel_operation_cancel_all ();
- g_mutex_lock (mail_msg_lock);
+ g_mutex_lock (&mail_msg_lock);
if (cancel_hook_list.is_setup)
g_hook_list_invoke (&cancel_hook_list, FALSE);
- g_mutex_unlock (mail_msg_lock);
+ g_mutex_unlock (&mail_msg_lock);
}
static guint idle_source_id = 0;
@@ -437,8 +437,8 @@ mail_msg_proxy (MailMsg *msg)
void
mail_msg_init (void)
{
- mail_msg_lock = g_mutex_new ();
- mail_msg_cond = g_cond_new ();
+ g_mutex_init (&mail_msg_lock);
+ g_cond_init (&mail_msg_cond);
main_loop_queue = g_async_queue_new ();
msg_reply_queue = g_async_queue_new ();
diff --git a/mail/e-mail-autoconfig.c b/mail/e-mail-autoconfig.c
index 65d735394a..5fa0fe23a6 100644
--- a/mail/e-mail-autoconfig.c
+++ b/mail/e-mail-autoconfig.c
@@ -289,14 +289,16 @@ mail_autoconfig_resolve_authority (const gchar *domain,
* So use a reference count on the thread closure and always
* let the thread run to completion even if we're not around
* any longer to pick up the result. */
- resolver_thread = g_thread_create (
+ resolver_thread = g_thread_try_new (NULL,
mail_autoconfig_resolver_thread,
resolver_closure_ref (closure),
- FALSE /* not joinable */, error);
+ error);
if (resolver_thread == NULL)
return FALSE;
+ g_thread_unref (resolver_thread);
+
if (G_IS_CANCELLABLE (cancellable))
cancel_id = g_cancellable_connect (
cancellable,
diff --git a/mail/importers/elm-importer.c b/mail/importers/elm-importer.c
index 5b555cb1c7..02d29f5394 100644
--- a/mail/importers/elm-importer.c
+++ b/mail/importers/elm-importer.c
@@ -51,7 +51,7 @@ struct _elm_import_msg {
EImport *import;
EImportTargetHome *target;
- GMutex *status_lock;
+ GMutex status_lock;
gchar *status_what;
gint status_pc;
gint status_timeout_id;
@@ -228,7 +228,7 @@ elm_import_free (struct _elm_import_msg *m)
g_object_unref (m->status);
g_free (m->status_what);
- g_mutex_free (m->status_lock);
+ g_mutex_clear (&m->status_lock);
g_source_remove (m->status_timeout_id);
m->status_timeout_id = 0;
@@ -244,11 +244,11 @@ elm_status (CamelOperation *op,
{
struct _elm_import_msg *importer = data;
- g_mutex_lock (importer->status_lock);
+ g_mutex_lock (&importer->status_lock);
g_free (importer->status_what);
importer->status_what = g_strdup (what);
importer->status_pc = pc;
- g_mutex_unlock (importer->status_lock);
+ g_mutex_unlock (&importer->status_lock);
}
static gboolean
@@ -259,11 +259,11 @@ elm_status_timeout (gpointer data)
gchar *what;
if (importer->status_what) {
- g_mutex_lock (importer->status_lock);
+ g_mutex_lock (&importer->status_lock);
what = importer->status_what;
importer->status_what = NULL;
pc = importer->status_pc;
- g_mutex_unlock (importer->status_lock);
+ g_mutex_unlock (&importer->status_lock);
e_import_status (
importer->import, (EImportTarget *)
@@ -294,7 +294,7 @@ mail_importer_elm_import (EImport *ei,
g_object_ref (m->import);
m->target = (EImportTargetHome *) target;
m->status_timeout_id = g_timeout_add (100, elm_status_timeout, m);
- m->status_lock = g_mutex_new ();
+ g_mutex_init (&m->status_lock);
m->status = camel_operation_new ();
g_signal_connect (
diff --git a/mail/importers/evolution-mbox-importer.c b/mail/importers/evolution-mbox-importer.c
index a024729bc2..0f1e507f2c 100644
--- a/mail/importers/evolution-mbox-importer.c
+++ b/mail/importers/evolution-mbox-importer.c
@@ -59,7 +59,7 @@ typedef struct {
EImport *import;
EImportTarget *target;
- GMutex *status_lock;
+ GMutex status_lock;
gchar *status_what;
gint status_pc;
gint status_timeout_id;
@@ -207,11 +207,11 @@ mbox_status (CamelOperation *op,
{
MboxImporter *importer = data;
- g_mutex_lock (importer->status_lock);
+ g_mutex_lock (&importer->status_lock);
g_free (importer->status_what);
importer->status_what = g_strdup (what);
importer->status_pc = pc;
- g_mutex_unlock (importer->status_lock);
+ g_mutex_unlock (&importer->status_lock);
}
static gboolean
@@ -222,11 +222,11 @@ mbox_status_timeout (gpointer data)
gchar *what;
if (importer->status_what) {
- g_mutex_lock (importer->status_lock);
+ g_mutex_lock (&importer->status_lock);
what = importer->status_what;
importer->status_what = NULL;
pc = importer->status_pc;
- g_mutex_unlock (importer->status_lock);
+ g_mutex_unlock (&importer->status_lock);
e_import_status (
importer->import, (EImportTarget *)
@@ -244,7 +244,7 @@ mbox_import_done (gpointer data,
g_source_remove (importer->status_timeout_id);
g_free (importer->status_what);
- g_mutex_free (importer->status_lock);
+ g_mutex_clear (&importer->status_lock);
g_object_unref (importer->cancellable);
e_import_complete (importer->import, importer->target);
@@ -275,7 +275,7 @@ mbox_import (EImport *ei,
g_datalist_set_data (&target->data, "mbox-data", importer);
importer->import = ei;
importer->target = target;
- importer->status_lock = g_mutex_new ();
+ g_mutex_init (&importer->status_lock);
importer->status_timeout_id = g_timeout_add (100, mbox_status_timeout, importer);
importer->cancellable = camel_operation_new ();
diff --git a/mail/importers/pine-importer.c b/mail/importers/pine-importer.c
index 664a77bcba..c8904c4e0b 100644
--- a/mail/importers/pine-importer.c
+++ b/mail/importers/pine-importer.c
@@ -53,7 +53,7 @@ struct _pine_import_msg {
EImport *import;
EImportTarget *target;
- GMutex *status_lock;
+ GMutex status_lock;
gchar *status_what;
gint status_pc;
gint status_timeout_id;
@@ -298,7 +298,7 @@ pine_import_free (struct _pine_import_msg *m)
g_object_unref (m->cancellable);
g_free (m->status_what);
- g_mutex_free (m->status_lock);
+ g_mutex_clear (&m->status_lock);
g_source_remove (m->status_timeout_id);
m->status_timeout_id = 0;
@@ -314,11 +314,11 @@ pine_status (CamelOperation *op,
{
struct _pine_import_msg *importer = data;
- g_mutex_lock (importer->status_lock);
+ g_mutex_lock (&importer->status_lock);
g_free (importer->status_what);
importer->status_what = g_strdup (what);
importer->status_pc = pc;
- g_mutex_unlock (importer->status_lock);
+ g_mutex_unlock (&importer->status_lock);
}
static gboolean
@@ -328,11 +328,11 @@ pine_status_timeout (struct _pine_import_msg *importer)
gchar *what;
if (importer->status_what) {
- g_mutex_lock (importer->status_lock);
+ g_mutex_lock (&importer->status_lock);
what = importer->status_what;
importer->status_what = NULL;
pc = importer->status_pc;
- g_mutex_unlock (importer->status_lock);
+ g_mutex_unlock (&importer->status_lock);
e_import_status (
importer->import, (EImportTarget *)
@@ -364,7 +364,7 @@ mail_importer_pine_import (EImport *ei,
m->target = target;
m->status_timeout_id = g_timeout_add (
100, (GSourceFunc) pine_status_timeout, m);
- m->status_lock = g_mutex_new ();
+ g_mutex_init (&m->status_lock);
m->cancellable = camel_operation_new ();
g_signal_connect (
diff --git a/mail/mail-send-recv.c b/mail/mail-send-recv.c
index 3bbb8160a5..baeea6e10b 100644
--- a/mail/mail-send-recv.c
+++ b/mail/mail-send-recv.c
@@ -88,7 +88,7 @@ struct _send_data {
CamelFolder *inbox;
time_t inbox_update;
- GMutex *lock;
+ GMutex lock;
GHashTable *folders;
GHashTable *active; /* send_info's by uri */
@@ -173,7 +173,7 @@ setup_send_data (EMailSession *session)
if (send_data == NULL) {
send_data = data = g_malloc0 (sizeof (*data));
- data->lock = g_mutex_new ();
+ g_mutex_init (&data->lock);
data->folders = g_hash_table_new_full (
g_str_hash, g_str_equal,
(GDestroyNotify) NULL,
@@ -223,7 +223,7 @@ free_send_data (void)
g_list_free (data->infos);
g_hash_table_destroy (data->active);
g_hash_table_destroy (data->folders);
- g_mutex_free (data->lock);
+ g_mutex_clear (&data->lock);
g_free (data);
send_data = NULL;
}
@@ -937,9 +937,9 @@ receive_get_folder (CamelFilterDriver *d,
struct _folder_info *oldinfo;
gpointer oldkey, oldinfoptr;
- g_mutex_lock (info->data->lock);
+ g_mutex_lock (&info->data->lock);
oldinfo = g_hash_table_lookup (info->data->folders, uri);
- g_mutex_unlock (info->data->lock);
+ g_mutex_unlock (&info->data->lock);
if (oldinfo) {
g_object_ref (oldinfo->folder);
@@ -954,7 +954,7 @@ receive_get_folder (CamelFilterDriver *d,
/* we recheck that the folder hasn't snuck in while we were loading it... */
/* and we assume the newer one is the same, but unref the old one anyway */
- g_mutex_lock (info->data->lock);
+ g_mutex_lock (&info->data->lock);
if (g_hash_table_lookup_extended (
info->data->folders, uri, &oldkey, &oldinfoptr)) {
@@ -970,7 +970,7 @@ receive_get_folder (CamelFilterDriver *d,
g_object_ref (folder);
- g_mutex_unlock (info->data->lock);
+ g_mutex_unlock (&info->data->lock);
return folder;
}
diff --git a/mail/message-list.c b/mail/message-list.c
index da0be14fea..959193a653 100644
--- a/mail/message-list.c
+++ b/mail/message-list.c
@@ -2578,7 +2578,7 @@ message_list_init (MessageList *message_list)
message_list->cursor_uid = NULL;
message_list->last_sel_single = FALSE;
- message_list->regen_lock = g_mutex_new ();
+ g_mutex_init (&message_list->regen_lock);
/* TODO: Should this only get the selection if we're realised? */
p = message_list->priv;
@@ -2747,7 +2747,7 @@ message_list_finalize (GObject *object)
g_free (message_list->frozen_search);
g_free (message_list->cursor_uid);
- g_mutex_free (message_list->regen_lock);
+ g_mutex_clear (&message_list->regen_lock);
clear_selection (message_list, &priv->clipboard);
@@ -4833,9 +4833,9 @@ regen_list_done (struct _regen_list_msg *m)
} else
build_flat (m->ml, m->summary, m->changes);
- g_mutex_lock (m->ml->regen_lock);
+ g_mutex_lock (&m->ml->regen_lock);
m->ml->regen = g_list_remove (m->ml->regen, m);
- g_mutex_unlock (m->ml->regen_lock);
+ g_mutex_unlock (&m->ml->regen_lock);
if (m->ml->regen == NULL && m->ml->pending_select_uid) {
gchar *uid;
@@ -4904,9 +4904,9 @@ regen_list_free (struct _regen_list_msg *m)
camel_folder_change_info_free (m->changes);
/* we have to poke this here as well since we might've been cancelled and regened wont get called */
- g_mutex_lock (m->ml->regen_lock);
+ g_mutex_lock (&m->ml->regen_lock);
m->ml->regen = g_list_remove (m->ml->regen, m);
- g_mutex_unlock (m->ml->regen_lock);
+ g_mutex_unlock (&m->ml->regen_lock);
if (m->expand_state)
xmlFreeDoc (m->expand_state);
@@ -4925,9 +4925,9 @@ static MailMsgInfo regen_list_info = {
static gboolean
ml_regen_timeout (struct _regen_list_msg *m)
{
- g_mutex_lock (m->ml->regen_lock);
+ g_mutex_lock (&m->ml->regen_lock);
m->ml->regen = g_list_prepend (m->ml->regen, m);
- g_mutex_unlock (m->ml->regen_lock);
+ g_mutex_unlock (&m->ml->regen_lock);
/* TODO: we should manage our own thread stuff, would make cancelling outstanding stuff easier */
mail_msg_fast_ordered_push (m);
@@ -4944,7 +4944,7 @@ mail_regen_cancel (MessageList *ml)
if (ml->regen) {
GList *link;
- g_mutex_lock (ml->regen_lock);
+ g_mutex_lock (&ml->regen_lock);
for (link = ml->regen; link != NULL; link = link->next) {
MailMsg *mm = link->data;
@@ -4954,7 +4954,7 @@ mail_regen_cancel (MessageList *ml)
g_cancellable_cancel (cancellable);
}
- g_mutex_unlock (ml->regen_lock);
+ g_mutex_unlock (&ml->regen_lock);
}
/* including unqueued ones */
diff --git a/mail/message-list.h b/mail/message-list.h
index 44a312e667..9c93c46b05 100644
--- a/mail/message-list.h
+++ b/mail/message-list.h
@@ -148,7 +148,7 @@ struct _MessageList {
/* list of outstanding regeneration requests */
GList *regen;
- GMutex *regen_lock; /* when writing to the regen, guard with this lock too */
+ GMutex regen_lock; /* when writing to the regen, guard with this lock too */
gchar *pending_select_uid; /* set if we were busy regnerating
* while we had a select come in */
gboolean pending_select_fallback;
diff --git a/modules/book-config-ldap/e-source-ldap.c b/modules/book-config-ldap/e-source-ldap.c
index 18bb104498..42d8a08eab 100644
--- a/modules/book-config-ldap/e-source-ldap.c
+++ b/modules/book-config-ldap/e-source-ldap.c
@@ -25,7 +25,7 @@
((obj), E_TYPE_SOURCE_LDAP, ESourceLDAPPrivate))
struct _ESourceLDAPPrivate {
- GMutex *property_lock;
+ GMutex property_lock;
gboolean can_browse;
gchar *filter;
guint limit;
@@ -225,7 +225,7 @@ source_ldap_finalize (GObject *object)
priv = E_SOURCE_LDAP_GET_PRIVATE (object);
- g_mutex_free (priv->property_lock);
+ g_mutex_clear (&priv->property_lock);
g_free (priv->filter);
g_free (priv->root_dn);
@@ -386,7 +386,7 @@ static void
e_source_ldap_init (ESourceLDAP *extension)
{
extension->priv = E_SOURCE_LDAP_GET_PRIVATE (extension);
- extension->priv->property_lock = g_mutex_new ();
+ g_mutex_init (&extension->priv->property_lock);
}
void
@@ -509,12 +509,12 @@ e_source_ldap_dup_filter (ESourceLDAP *extension)
g_return_val_if_fail (E_IS_SOURCE_LDAP (extension), NULL);
- g_mutex_lock (extension->priv->property_lock);
+ g_mutex_lock (&extension->priv->property_lock);
protected = e_source_ldap_get_filter (extension);
duplicate = g_strdup (protected);
- g_mutex_unlock (extension->priv->property_lock);
+ g_mutex_unlock (&extension->priv->property_lock);
return duplicate;
}
@@ -533,7 +533,7 @@ e_source_ldap_set_filter (ESourceLDAP *extension,
!g_str_has_prefix (filter, "(") &&
!g_str_has_suffix (filter, ")");
- g_mutex_lock (extension->priv->property_lock);
+ g_mutex_lock (&extension->priv->property_lock);
if (needs_parens)
new_filter = g_strdup_printf ("(%s)", filter);
@@ -541,7 +541,7 @@ e_source_ldap_set_filter (ESourceLDAP *extension,
new_filter = g_strdup (filter);
if (g_strcmp0 (extension->priv->filter, new_filter) == 0) {
- g_mutex_unlock (extension->priv->property_lock);
+ g_mutex_unlock (&extension->priv->property_lock);
g_free (new_filter);
return;
}
@@ -549,7 +549,7 @@ e_source_ldap_set_filter (ESourceLDAP *extension,
g_free (extension->priv->filter);
extension->priv->filter = new_filter;
- g_mutex_unlock (extension->priv->property_lock);
+ g_mutex_unlock (&extension->priv->property_lock);
g_object_notify (G_OBJECT (extension), "filter");
}
@@ -592,12 +592,12 @@ e_source_ldap_dup_root_dn (ESourceLDAP *extension)
g_return_val_if_fail (E_IS_SOURCE_LDAP (extension), NULL);
- g_mutex_lock (extension->priv->property_lock);
+ g_mutex_lock (&extension->priv->property_lock);
protected = e_source_ldap_get_root_dn (extension);
duplicate = g_strdup (protected);
- g_mutex_unlock (extension->priv->property_lock);
+ g_mutex_unlock (&extension->priv->property_lock);
return duplicate;
}
@@ -608,17 +608,17 @@ e_source_ldap_set_root_dn (ESourceLDAP *extension,
{
g_return_if_fail (E_IS_SOURCE_LDAP (extension));
- g_mutex_lock (extension->priv->property_lock);
+ g_mutex_lock (&extension->priv->property_lock);
if (g_strcmp0 (extension->priv->root_dn, root_dn) == 0) {
- g_mutex_unlock (extension->priv->property_lock);
+ g_mutex_unlock (&extension->priv->property_lock);
return;
}
g_free (extension->priv->root_dn);
extension->priv->root_dn = e_util_strdup_strip (root_dn);
- g_mutex_unlock (extension->priv->property_lock);
+ g_mutex_unlock (&extension->priv->property_lock);
g_object_notify (G_OBJECT (extension), "root-dn");
}
diff --git a/modules/cal-config-local/e-source-local.c b/modules/cal-config-local/e-source-local.c
index 6877cf0d27..10b737a858 100644
--- a/modules/cal-config-local/e-source-local.c
+++ b/modules/cal-config-local/e-source-local.c
@@ -23,7 +23,7 @@
((obj), E_TYPE_SOURCE_LOCAL, ESourceLocalPrivate))
struct _ESourceLocalPrivate {
- GMutex *property_lock;
+ GMutex property_lock;
GFile *custom_file;
};
@@ -95,7 +95,7 @@ source_local_finalize (GObject *object)
priv = E_SOURCE_LOCAL_GET_PRIVATE (object);
- g_mutex_free (priv->property_lock);
+ g_mutex_clear (&priv->property_lock);
/* Chain up to parent's finalize() method. */
G_OBJECT_CLASS (e_source_local_parent_class)->finalize (object);
@@ -140,7 +140,7 @@ static void
e_source_local_init (ESourceLocal *extension)
{
extension->priv = E_SOURCE_LOCAL_GET_PRIVATE (extension);
- extension->priv->property_lock = g_mutex_new ();
+ g_mutex_init (&extension->priv->property_lock);
}
void
@@ -168,12 +168,12 @@ e_source_local_dup_custom_file (ESourceLocal *extension)
g_return_val_if_fail (E_IS_SOURCE_LOCAL (extension), NULL);
- g_mutex_lock (extension->priv->property_lock);
+ g_mutex_lock (&extension->priv->property_lock);
protected = e_source_local_get_custom_file (extension);
duplicate = (protected != NULL) ? g_file_dup (protected) : NULL;
- g_mutex_unlock (extension->priv->property_lock);
+ g_mutex_unlock (&extension->priv->property_lock);
return duplicate;
}
@@ -189,14 +189,14 @@ e_source_local_set_custom_file (ESourceLocal *extension,
g_object_ref (custom_file);
}
- g_mutex_lock (extension->priv->property_lock);
+ g_mutex_lock (&extension->priv->property_lock);
if (extension->priv->custom_file != NULL)
g_object_unref (extension->priv->custom_file);
extension->priv->custom_file = custom_file;
- g_mutex_unlock (extension->priv->property_lock);
+ g_mutex_unlock (&extension->priv->property_lock);
g_object_notify (G_OBJECT (extension), "custom-file");
}
diff --git a/modules/cal-config-weather/e-source-weather.c b/modules/cal-config-weather/e-source-weather.c
index 3440224173..4ba306408a 100644
--- a/modules/cal-config-weather/e-source-weather.c
+++ b/modules/cal-config-weather/e-source-weather.c
@@ -23,7 +23,7 @@
((obj), E_TYPE_SOURCE_WEATHER, ESourceWeatherPrivate))
struct _ESourceWeatherPrivate {
- GMutex *property_lock;
+ GMutex property_lock;
ESourceWeatherUnits units;
gchar *location;
};
@@ -96,7 +96,7 @@ source_weather_finalize (GObject *object)
priv = E_SOURCE_WEATHER_GET_PRIVATE (object);
- g_mutex_free (priv->property_lock);
+ g_mutex_clear (&priv->property_lock);
g_free (priv->location);
@@ -155,7 +155,7 @@ static void
e_source_weather_init (ESourceWeather *extension)
{
extension->priv = E_SOURCE_WEATHER_GET_PRIVATE (extension);
- extension->priv->property_lock = g_mutex_new ();
+ g_mutex_init (&extension->priv->property_lock);
}
void
@@ -198,12 +198,12 @@ e_source_weather_dup_location (ESourceWeather *extension)
g_return_val_if_fail (E_IS_SOURCE_WEATHER (extension), NULL);
- g_mutex_lock (extension->priv->property_lock);
+ g_mutex_lock (&extension->priv->property_lock);
protected = e_source_weather_get_location (extension);
duplicate = g_strdup (protected);
- g_mutex_unlock (extension->priv->property_lock);
+ g_mutex_unlock (&extension->priv->property_lock);
return duplicate;
}
@@ -216,11 +216,11 @@ e_source_weather_set_location (ESourceWeather *extension,
g_return_if_fail (E_IS_SOURCE_WEATHER (extension));
- g_mutex_lock (extension->priv->property_lock);
+ g_mutex_lock (&extension->priv->property_lock);
new_location = e_util_strdup_strip (location);
if (g_strcmp0 (extension->priv->location, new_location) == 0) {
- g_mutex_unlock (extension->priv->property_lock);
+ g_mutex_unlock (&extension->priv->property_lock);
g_free (new_location);
return;
}
@@ -228,7 +228,7 @@ e_source_weather_set_location (ESourceWeather *extension,
g_free (extension->priv->location);
extension->priv->location = new_location;
- g_mutex_unlock (extension->priv->property_lock);
+ g_mutex_unlock (&extension->priv->property_lock);
g_object_notify (G_OBJECT (extension), "location");
}
diff --git a/modules/spamassassin/evolution-spamassassin.c b/modules/spamassassin/evolution-spamassassin.c
index 480fedccd4..6a8affab83 100644
--- a/modules/spamassassin/evolution-spamassassin.c
+++ b/modules/spamassassin/evolution-spamassassin.c
@@ -63,7 +63,7 @@ struct _ESpamAssassin {
EMailJunkFilter parent;
GOnce spamd_testing;
- GMutex *socket_path_mutex;
+ GMutex socket_path_mutex;
gchar *pid_file;
gchar *socket_path;
@@ -412,7 +412,7 @@ spam_assassin_test_spamd_running (ESpamAssassin *extension,
gint ii = 0;
GError *error = NULL;
- g_mutex_lock (extension->socket_path_mutex);
+ g_mutex_lock (&extension->socket_path_mutex);
argv[ii++] = SPAMC_COMMAND;
argv[ii++] = "--no-safe-fallback";
@@ -432,7 +432,7 @@ spam_assassin_test_spamd_running (ESpamAssassin *extension,
g_error_free (error);
}
- g_mutex_unlock (extension->socket_path_mutex);
+ g_mutex_unlock (&extension->socket_path_mutex);
return (exit_code == 0);
}
@@ -444,12 +444,12 @@ spam_assassin_kill_our_own_daemon (ESpamAssassin *extension)
gchar *contents = NULL;
GError *error = NULL;
- g_mutex_lock (extension->socket_path_mutex);
+ g_mutex_lock (&extension->socket_path_mutex);
g_free (extension->socket_path);
extension->socket_path = NULL;
- g_mutex_unlock (extension->socket_path_mutex);
+ g_mutex_unlock (&extension->socket_path_mutex);
if (extension->pid_file == NULL)
return;
@@ -493,7 +493,7 @@ spam_assassin_start_our_own_daemon (ESpamAssassin *extension)
gint fd;
GError *error = NULL;
- g_mutex_lock (extension->socket_path_mutex);
+ g_mutex_lock (&extension->socket_path_mutex);
/* Don't put the PID files in Evolution's tmp directory
* (as defined in e-mktemp.c) because that gets cleaned
@@ -588,7 +588,7 @@ exit:
g_free (pid_file);
g_free (socket_path);
- g_mutex_unlock (extension->socket_path_mutex);
+ g_mutex_unlock (&extension->socket_path_mutex);
return started;
}
@@ -725,7 +725,7 @@ spam_assassin_finalize (GObject *object)
{
ESpamAssassin *extension = E_SPAM_ASSASSIN (object);
- g_mutex_free (extension->socket_path_mutex);
+ g_mutex_clear (&extension->socket_path_mutex);
g_free (extension->pid_file);
g_free (extension->socket_path);
@@ -809,7 +809,7 @@ spam_assassin_classify (CamelJunkFilter *junk_filter,
if (g_cancellable_set_error_if_cancelled (cancellable, error))
return FALSE;
- g_mutex_lock (extension->socket_path_mutex);
+ g_mutex_lock (&extension->socket_path_mutex);
if (extension->use_spamc) {
g_assert (SPAMC_COMMAND != NULL);
@@ -860,7 +860,7 @@ spam_assassin_classify (CamelJunkFilter *junk_filter,
else
g_warn_if_fail (error == NULL || *error != NULL);
- g_mutex_unlock (extension->socket_path_mutex);
+ g_mutex_unlock (&extension->socket_path_mutex);
return status;
}
@@ -1084,7 +1084,7 @@ e_spam_assassin_init (ESpamAssassin *extension)
{
GSettings *settings;
- extension->socket_path_mutex = g_mutex_new ();
+ g_mutex_init (&extension->socket_path_mutex);
settings = g_settings_new ("org.gnome.evolution.spamassassin");
diff --git a/plugins/bbdb/bbdb.c b/plugins/bbdb/bbdb.c
index e0d3ca3e91..b06d168fed 100644
--- a/plugins/bbdb/bbdb.c
+++ b/plugins/bbdb/bbdb.c
@@ -192,12 +192,13 @@ bbdb_do_thread (const gchar *name,
* care of that, thus just add it to the queue */
todo = g_slist_append (todo, td);
} else {
+ GThread *thread;
GError *error = NULL;
EBookClient *client = bbdb_create_book_client (AUTOMATIC_CONTACTS_ADDRESSBOOK);
/* list was empty, add item and create a thread */
todo = g_slist_append (todo, td);
- g_thread_create (bbdb_do_in_thread, client, FALSE, &error);
+ thread = g_thread_try_new (NULL, bbdb_do_in_thread, client, &error);
if (error) {
g_warning ("%s: Creation of the thread failed with error: %s", G_STRFUNC, error->message);
@@ -206,6 +207,8 @@ bbdb_do_thread (const gchar *name,
G_UNLOCK (todo);
bbdb_do_in_thread (client);
G_LOCK (todo);
+ } else {
+ g_thread_unref (thread);
}
}
G_UNLOCK (todo);
diff --git a/plugins/bbdb/gaimbuddies.c b/plugins/bbdb/gaimbuddies.c
index 99352787e9..b59e683c8e 100644
--- a/plugins/bbdb/gaimbuddies.c
+++ b/plugins/bbdb/gaimbuddies.c
@@ -307,6 +307,7 @@ void
bbdb_sync_buddy_list (void)
{
GList *blist;
+ GThread *thread;
GError *error = NULL;
EBookClient *client = NULL;
struct sync_thread_data *std;
@@ -339,7 +340,7 @@ bbdb_sync_buddy_list (void)
syncing = TRUE;
- g_thread_create (bbdb_sync_buddy_list_in_thread, std, FALSE, &error);
+ thread = g_thread_try_new (NULL, bbdb_sync_buddy_list_in_thread, std, &error);
if (error) {
g_warning (
"%s: Creation of the thread failed with error: %s",
@@ -349,6 +350,8 @@ bbdb_sync_buddy_list (void)
G_UNLOCK (syncing);
bbdb_sync_buddy_list_in_thread (std);
G_LOCK (syncing);
+ } else {
+ g_thread_unref (thread);
}
G_UNLOCK (syncing);
diff --git a/plugins/dbx-import/dbx-importer.c b/plugins/dbx-import/dbx-importer.c
index 14799fb583..7f850ae631 100644
--- a/plugins/dbx-import/dbx-importer.c
+++ b/plugins/dbx-import/dbx-importer.c
@@ -105,7 +105,7 @@ typedef struct {
EImport *import;
EImportTarget *target;
- GMutex *status_lock;
+ GMutex status_lock;
gchar *status_what;
gint status_pc;
gint status_timeout_id;
@@ -736,7 +736,7 @@ static void
dbx_import_free (DbxImporter *m)
{
g_free (m->status_what);
- g_mutex_free (m->status_lock);
+ g_mutex_clear (&m->status_lock);
g_source_remove (m->status_timeout_id);
m->status_timeout_id = 0;
@@ -764,11 +764,11 @@ dbx_status_timeout (gpointer data)
gchar *what;
if (importer->status_what) {
- g_mutex_lock (importer->status_lock);
+ g_mutex_lock (&importer->status_lock);
what = importer->status_what;
importer->status_what = NULL;
pc = importer->status_pc;
- g_mutex_unlock (importer->status_lock);
+ g_mutex_unlock (&importer->status_lock);
e_import_status (
importer->target->import,
@@ -786,11 +786,11 @@ dbx_status (CamelOperation *op,
{
DbxImporter *importer = data;
- g_mutex_lock (importer->status_lock);
+ g_mutex_lock (&importer->status_lock);
g_free (importer->status_what);
importer->status_what = g_strdup (what);
importer->status_pc = pc;
- g_mutex_unlock (importer->status_lock);
+ g_mutex_unlock (&importer->status_lock);
}
/* Start the main import operation */
@@ -813,7 +813,7 @@ org_gnome_evolution_readdbx_import (EImport *ei,
m->status_timeout_id = g_timeout_add (100, dbx_status_timeout, m);
/*m->status_timeout_id = NULL;*/
- m->status_lock = g_mutex_new ();
+ g_mutex_init (&m->status_lock);
m->cancellable = camel_operation_new ();
g_signal_connect (
diff --git a/plugins/external-editor/external-editor.c b/plugins/external-editor/external-editor.c
index cac0a63ed5..42cdb9f9ff 100644
--- a/plugins/external-editor/external-editor.c
+++ b/plugins/external-editor/external-editor.c
@@ -53,7 +53,6 @@ static void ee_editor_command_changed
(GtkWidget *textbox);
static void ee_editor_immediate_launch_changed
(GtkWidget *checkbox);
-static void async_external_editor (EMsgComposer *composer);
static gboolean editor_running (void);
static gboolean key_press_cb (GtkWidget *widget,
GdkEventKey *event,
@@ -249,9 +248,13 @@ numlines (const gchar *text,
return lineno;
}
-void
-async_external_editor (EMsgComposer *composer)
+static gboolean external_editor_running = FALSE;
+static GMutex external_editor_running_lock;
+
+static gpointer
+external_editor_thread (gpointer user_data)
{
+ EMsgComposer *composer = user_data;
gchar *filename = NULL;
gint status = 0;
GSettings *settings;
@@ -280,7 +283,8 @@ async_external_editor (EMsgComposer *composer)
/* run_error_dialog also calls enable_composer */
g_idle_add ((GSourceFunc) run_error_dialog, data);
- return;
+
+ goto finished;
}
settings = g_settings_new ("org.gnome.evolution.plugin.external-editor");
@@ -339,7 +343,7 @@ async_external_editor (EMsgComposer *composer)
g_free (filename);
g_free (editor_cmd_line);
g_free (editor_cmd);
- return;
+ goto finished;
}
g_free (editor_cmd_line);
g_free (editor_cmd);
@@ -351,7 +355,7 @@ async_external_editor (EMsgComposer *composer)
#endif
d (printf ("\n\nsome problem here with external editor\n\n"));
g_idle_add ((GSourceFunc) enable_composer, composer);
- return;
+ goto finished;
} else {
gchar *buf;
@@ -373,6 +377,13 @@ async_external_editor (EMsgComposer *composer)
g_free (filename);
}
}
+
+ finished:
+ g_mutex_lock (&external_editor_running_lock);
+ external_editor_running = FALSE;
+ g_mutex_unlock (&external_editor_running_lock);
+
+ return NULL;
}
static void launch_editor (GtkAction *action, EMsgComposer *composer)
@@ -386,8 +397,13 @@ static void launch_editor (GtkAction *action, EMsgComposer *composer)
disable_composer (composer);
- editor_thread = g_thread_create (
- (GThreadFunc) async_external_editor, composer, FALSE, NULL);
+ g_mutex_lock (&external_editor_running_lock);
+ external_editor_running = TRUE;
+ g_mutex_unlock (&external_editor_running_lock);
+
+ editor_thread = g_thread_new (
+ NULL, external_editor_thread, composer);
+ g_thread_unref (editor_thread);
}
static GtkActionEntry entries[] = {
@@ -431,21 +447,14 @@ key_press_cb (GtkWidget *widget,
return TRUE;
}
-static void
-editor_running_thread_func (GThread *thread,
- gpointer running)
-{
- if (thread == editor_thread)
- *(gboolean*)running = TRUE;
-}
-
-/* Racy? */
static gboolean
editor_running (void)
{
- gboolean running = FALSE;
+ gboolean running;
- g_thread_foreach ((GFunc) editor_running_thread_func, &running);
+ g_mutex_lock (&external_editor_running_lock);
+ running = external_editor_running;
+ g_mutex_unlock (&external_editor_running_lock);
return running;
}
diff --git a/plugins/mail-to-task/mail-to-task.c b/plugins/mail-to-task/mail-to-task.c
index 2992fc961f..36801ccb99 100644
--- a/plugins/mail-to-task/mail-to-task.c
+++ b/plugins/mail-to-task/mail-to-task.c
@@ -559,8 +559,8 @@ struct _manage_comp
ECalClient *client;
ECalComponent *comp;
icalcomponent *stored_comp; /* the one in client already */
- GCond *cond;
- GMutex *mutex;
+ GCond cond;
+ GMutex mutex;
gint mails_count;
gint mails_done;
gchar *editor_title;
@@ -576,10 +576,8 @@ free_manage_comp_struct (struct _manage_comp *mc)
g_object_unref (mc->client);
if (mc->stored_comp)
icalcomponent_free (mc->stored_comp);
- if (mc->mutex)
- g_mutex_free (mc->mutex);
- if (mc->cond)
- g_cond_free (mc->cond);
+ g_mutex_clear (&mc->mutex);
+ g_cond_clear (&mc->cond);
if (mc->editor_title)
g_free (mc->editor_title);
@@ -681,7 +679,7 @@ comp_editor_closed (CompEditor *editor,
/* Signal the do_mail_to_event thread that editor was closed and editor
* for next event can be displayed (if any) */
- g_cond_signal (mc->cond);
+ g_cond_signal (&mc->cond);
}
/*
@@ -807,12 +805,12 @@ do_manage_comp_idle (struct _manage_comp *mc)
g_object_unref (edit_comp);
} else {
g_warning ("Failed to create event editor: %s", error ? error->message : "Unknown error");
- g_cond_signal (mc->cond);
+ g_cond_signal (&mc->cond);
}
} else {
/* User canceled editing already existing event, so treat it as if he just closed the editor window */
comp_editor_closed (NULL, FALSE, mc);
- g_cond_signal (mc->cond);
+ g_cond_signal (&mc->cond);
}
if (error) {
@@ -979,8 +977,8 @@ do_mail_to_event (AsyncData *data)
mc = g_new0 (struct _manage_comp, 1);
mc->client = g_object_ref (client);
mc->comp = g_object_ref (comp);
- mc->mutex = g_mutex_new ();
- mc->cond = g_cond_new ();
+ g_mutex_init (&mc->mutex);
+ g_cond_init (&mc->cond);
mc->mails_count = uids->len;
mc->mails_done = i + 1; /* Current task */
mc->editor_title = NULL;
@@ -990,9 +988,9 @@ do_mail_to_event (AsyncData *data)
/* Wait for user to quit the editor created in previous iteration
* before displaying next one */
gboolean can_continue;
- g_mutex_lock (oldmc->mutex);
- g_cond_wait (oldmc->cond, oldmc->mutex);
- g_mutex_unlock (oldmc->mutex);
+ g_mutex_lock (&oldmc->mutex);
+ g_cond_wait (&oldmc->cond, &oldmc->mutex);
+ g_mutex_unlock (&oldmc->mutex);
can_continue = oldmc->can_continue;
free_manage_comp_struct (oldmc);
oldmc = NULL;
@@ -1015,9 +1013,9 @@ do_mail_to_event (AsyncData *data)
/* Wait for the last editor and then clean up */
if (oldmc) {
- g_mutex_lock (oldmc->mutex);
- g_cond_wait (oldmc->cond, oldmc->mutex);
- g_mutex_unlock (oldmc->mutex);
+ g_mutex_lock (&oldmc->mutex);
+ g_cond_wait (&oldmc->cond, &oldmc->mutex);
+ g_mutex_unlock (&oldmc->mutex);
free_manage_comp_struct (oldmc);
}
}
@@ -1220,10 +1218,12 @@ mail_to_event (ECalClientSourceType source_type,
else
data->selected_text = NULL;
- thread = g_thread_create ((GThreadFunc) do_mail_to_event, data, FALSE, &error);
+ thread = g_thread_try_new (NULL, (GThreadFunc) do_mail_to_event, data, &error);
if (!thread) {
- g_warning (G_STRLOC ": %s", error->message);
+ g_warning (G_STRLOC ": %s", error ? error->message : "Unknown error");
g_error_free (error);
+ } else {
+ g_thread_unref (thread);
}
}
diff --git a/plugins/pst-import/pst-importer.c b/plugins/pst-import/pst-importer.c
index 205bfff333..958b374ebc 100644
--- a/plugins/pst-import/pst-importer.c
+++ b/plugins/pst-import/pst-importer.c
@@ -109,7 +109,7 @@ struct _PstImporter {
EImportTarget *target;
gint waiting_open;
- GMutex *status_lock;
+ GMutex status_lock;
gchar *status_what;
gint status_pc;
gint status_timeout_id;
@@ -2098,7 +2098,7 @@ pst_import_free (PstImporter *m)
g_object_unref (m->cancellable);
g_free (m->status_what);
- g_mutex_free (m->status_lock);
+ g_mutex_clear (&m->status_lock);
g_source_remove (m->status_timeout_id);
m->status_timeout_id = 0;
@@ -2125,11 +2125,11 @@ pst_status_timeout (gpointer data)
gchar *what;
if (importer->status_what) {
- g_mutex_lock (importer->status_lock);
+ g_mutex_lock (&importer->status_lock);
what = importer->status_what;
importer->status_what = NULL;
pc = importer->status_pc;
- g_mutex_unlock (importer->status_lock);
+ g_mutex_unlock (&importer->status_lock);
e_import_status (importer->target->import, (EImportTarget *) importer->target, what, pc);
}
@@ -2145,11 +2145,11 @@ pst_status (CamelOperation *op,
{
PstImporter *importer = data;
- g_mutex_lock (importer->status_lock);
+ g_mutex_lock (&importer->status_lock);
g_free (importer->status_what);
importer->status_what = g_strdup (what);
importer->status_pc = pc;
- g_mutex_unlock (importer->status_lock);
+ g_mutex_unlock (&importer->status_lock);
}
static void
@@ -2175,7 +2175,7 @@ pst_import (EImport *ei,
m->status_timeout_id = g_timeout_add (100, pst_status_timeout, m);
/*m->status_timeout_id = NULL;*/
- m->status_lock = g_mutex_new ();
+ g_mutex_init (&m->status_lock);
m->cancellable = camel_operation_new ();
g_signal_connect (
diff --git a/plugins/publish-calendar/publish-calendar.c b/plugins/publish-calendar/publish-calendar.c
index 4193ae50d4..ab3e36dd6d 100644
--- a/plugins/publish-calendar/publish-calendar.c
+++ b/plugins/publish-calendar/publish-calendar.c
@@ -182,10 +182,12 @@ publish_uri_async (EPublishUri *uri)
GThread *thread = NULL;
GError *error = NULL;
- thread = g_thread_create ((GThreadFunc) publish_no_succ_info, uri, FALSE, &error);
+ thread = g_thread_try_new (NULL, (GThreadFunc) publish_no_succ_info, uri, &error);
if (!thread) {
- g_warning (G_STRLOC ": %s", error->message);
+ g_warning (G_STRLOC ": %s", error ? error->message : "Unknown error");
g_error_free (error);
+ } else {
+ g_thread_unref (thread);
}
}
@@ -993,10 +995,12 @@ e_plugin_lib_enable (EPlugin *ep,
uris = g_settings_get_strv (settings, PC_SETTINGS_URIS);
g_object_unref (settings);
- thread = g_thread_create ((GThreadFunc) publish_uris_set_timeout, uris, FALSE, &error);
+ thread = g_thread_try_new (NULL, (GThreadFunc) publish_uris_set_timeout, uris, &error);
if (!thread) {
- g_warning ("Could create thread to set timeout for publishing uris : %s", error->message);
+ g_warning ("Could create thread to set timeout for publishing uris : %s", error ? error->message : "Unknown error");
g_error_free (error);
+ } else {
+ g_thread_unref (thread);
}
}
@@ -1096,12 +1100,14 @@ action_calendar_publish_cb (GtkAction *action,
GThread *thread = NULL;
GError *error = NULL;
- thread = g_thread_create ((GThreadFunc) publish_urls, NULL, FALSE, &error);
+ thread = g_thread_try_new (NULL, (GThreadFunc) publish_urls, NULL, &error);
if (!thread) {
/* To Translators: This is shown to a user when creation of a new thread,
* where the publishing should be done, fails. Basically, this shouldn't
* ever happen, and if so, then something is really wrong. */
error_queue_add (g_strdup (_("Could not create publish thread.")), error);
+ } else {
+ g_thread_unref (thread);
}
}
diff --git a/shell/e-convert-local-mail.c b/shell/e-convert-local-mail.c
index 8a726f8a99..7e94ee7175 100644
--- a/shell/e-convert-local-mail.c
+++ b/shell/e-convert-local-mail.c
@@ -190,6 +190,7 @@ migrate_mbox_to_maildir (EShell *shell,
const gchar *mbox_uid;
gchar *path;
struct MigrateStore ms;
+ GThread *thread;
GError *error = NULL;
registry = e_shell_get_registry (shell);
@@ -255,12 +256,13 @@ migrate_mbox_to_maildir (EShell *shell,
ms.session = session;
ms.complete = FALSE;
- g_thread_create ((GThreadFunc) migrate_stores, &ms, TRUE, NULL);
+ thread = g_thread_new (NULL, (GThreadFunc) migrate_stores, &ms);
while (!ms.complete)
g_main_context_iteration (NULL, TRUE);
g_object_unref (mbox_service);
g_object_unref (maildir_service);
+ g_thread_unref (thread);
return TRUE;
}
diff --git a/shell/e-shell.c b/shell/e-shell.c
index 3440df7bbf..2f7cdcc8b5 100644
--- a/shell/e-shell.c
+++ b/shell/e-shell.c
@@ -52,7 +52,6 @@ struct _EShellPrivate {
GQueue alerts;
EShellSettings *settings;
ESourceRegistry *registry;
- GActionGroup *action_group;
GtkWidget *preferences_window;
/* Shell Backends */
@@ -238,19 +237,18 @@ shell_action_quit_cb (GSimpleAction *action,
static void
shell_add_actions (GApplication *application)
{
- EShell *shell;
- GSimpleActionGroup *action_group;
+ GActionMap *action_map;
GSimpleAction *action;
- /* Add actions that remote instances can invoke. */
+ action_map = G_ACTION_MAP (application);
- action_group = g_simple_action_group_new ();
+ /* Add actions that remote instances can invoke. */
action = g_simple_action_new ("new-window", G_VARIANT_TYPE_STRING);
g_signal_connect (
action, "activate",
G_CALLBACK (shell_action_new_window_cb), application);
- g_simple_action_group_insert (action_group, G_ACTION (action));
+ g_action_map_add_action (action_map, G_ACTION (action));
g_object_unref (action);
action = g_simple_action_new (
@@ -258,21 +256,15 @@ shell_add_actions (GApplication *application)
g_signal_connect (
action, "activate",
G_CALLBACK (shell_action_handle_uris_cb), application);
- g_simple_action_group_insert (action_group, G_ACTION (action));
+ g_action_map_add_action (action_map, G_ACTION (action));
g_object_unref (action);
action = g_simple_action_new ("quit", NULL);
g_signal_connect (
action, "activate",
G_CALLBACK (shell_action_quit_cb), application);
- g_simple_action_group_insert (action_group, G_ACTION (action));
+ g_action_map_add_action (action_map, G_ACTION (action));
g_object_unref (action);
-
- shell = E_SHELL (application);
- shell->priv->action_group = G_ACTION_GROUP (action_group);
-
- g_application_set_action_group (
- application, shell->priv->action_group);
}
static void
@@ -721,11 +713,6 @@ shell_dispose (GObject *object)
priv->registry = NULL;
}
- if (priv->action_group != NULL) {
- g_object_unref (priv->action_group);
- priv->action_group = NULL;
- }
-
if (priv->preferences_window != NULL) {
g_object_unref (priv->preferences_window);
priv->preferences_window = NULL;
diff --git a/smime/lib/e-cert-trust.c b/smime/lib/e-cert-trust.c
index a23e0a7083..e99c5c4047 100644
--- a/smime/lib/e-cert-trust.c
+++ b/smime/lib/e-cert-trust.c
@@ -127,7 +127,7 @@ e_cert_trust_set_ssl_trust (CERTCertTrust *trust,
{
trust->sslFlags = 0;
if (peer || tPeer)
- e_cert_trust_add_trust (&trust->sslFlags, CERTDB_VALID_PEER);
+ e_cert_trust_add_trust (&trust->sslFlags, CERTDB_TERMINAL_RECORD);
if (tPeer)
e_cert_trust_add_trust (&trust->sslFlags, CERTDB_TRUSTED);
if (ca || tCA)
@@ -154,7 +154,7 @@ e_cert_trust_set_email_trust (CERTCertTrust *trust,
{
trust->emailFlags = 0;
if (peer || tPeer)
- e_cert_trust_add_trust (&trust->emailFlags, CERTDB_VALID_PEER);
+ e_cert_trust_add_trust (&trust->emailFlags, CERTDB_TERMINAL_RECORD);
if (tPeer)
e_cert_trust_add_trust (&trust->emailFlags, CERTDB_TRUSTED);
if (ca || tCA)
@@ -183,7 +183,7 @@ e_cert_trust_set_objsign_trust (CERTCertTrust *trust,
if (peer || tPeer)
e_cert_trust_add_trust (
&trust->objectSigningFlags,
- CERTDB_VALID_PEER);
+ CERTDB_TERMINAL_RECORD);
if (tPeer)
e_cert_trust_add_trust (
&trust->objectSigningFlags,
@@ -361,15 +361,15 @@ e_cert_trust_has_peer (CERTCertTrust *trust,
PRBool checkObjSign)
{
if (checkSSL && !e_cert_trust_has_trust (
- trust->sslFlags, CERTDB_VALID_PEER))
+ trust->sslFlags, CERTDB_TERMINAL_RECORD))
return PR_FALSE;
if (checkEmail && !e_cert_trust_has_trust (
- trust->emailFlags, CERTDB_VALID_PEER))
+ trust->emailFlags, CERTDB_TERMINAL_RECORD))
return PR_FALSE;
if (checkObjSign && !e_cert_trust_has_trust (
- trust->objectSigningFlags, CERTDB_VALID_PEER))
+ trust->objectSigningFlags, CERTDB_TERMINAL_RECORD))
return PR_FALSE;
return PR_TRUE;
diff --git a/widgets/misc/e-attachment-bar.c b/widgets/misc/e-attachment-bar.c
index ed9fb02105..2f57a7f339 100644
--- a/widgets/misc/e-attachment-bar.c
+++ b/widgets/misc/e-attachment-bar.c
@@ -93,7 +93,7 @@ attachment_bar_update_status (EAttachmentBar *bar)
num_attachments = e_attachment_store_get_num_attachments (store);
total_size = e_attachment_store_get_total_size (store);
- display_size = g_format_size_for_display (total_size);
+ display_size = g_format_size (total_size);
if (total_size > 0)
markup = g_strdup_printf (
diff --git a/widgets/misc/e-attachment-paned.c b/widgets/misc/e-attachment-paned.c
index 119c66e6f2..565d91c4de 100644
--- a/widgets/misc/e-attachment-paned.c
+++ b/widgets/misc/e-attachment-paned.c
@@ -168,7 +168,7 @@ attachment_paned_update_status (EAttachmentPaned *paned)
num_attachments = e_attachment_store_get_num_attachments (store);
total_size = e_attachment_store_get_total_size (store);
- display_size = g_format_size_for_display (total_size);
+ display_size = g_format_size (total_size);
if (total_size > 0)
markup = g_strdup_printf (
diff --git a/widgets/misc/e-attachment-tree-view.c b/widgets/misc/e-attachment-tree-view.c
index 9a03d54a28..b73751fbbd 100644
--- a/widgets/misc/e-attachment-tree-view.c
+++ b/widgets/misc/e-attachment-tree-view.c
@@ -138,7 +138,7 @@ attachment_tree_view_render_size (GtkTreeViewColumn *column,
gtk_tree_model_get (model, iter, column_id, &size, -1);
if (size > 0)
- display_size = g_format_size_for_display ((goffset) size);
+ display_size = g_format_size ((goffset) size);
g_object_set (renderer, "text", display_size, NULL);
diff --git a/widgets/misc/e-attachment.c b/widgets/misc/e-attachment.c
index 315b012b2d..7b245e8b0d 100644
--- a/widgets/misc/e-attachment.c
+++ b/widgets/misc/e-attachment.c
@@ -220,7 +220,7 @@ attachment_update_file_info_columns (EAttachment *attachment)
size = g_file_info_get_size (file_info);
content_desc = g_content_type_get_description (content_type);
- display_size = g_format_size_for_display (size);
+ display_size = g_format_size (size);
description = e_attachment_get_description (attachment);
if (description == NULL || *description == '\0')
diff --git a/widgets/misc/e-picture-gallery.c b/widgets/misc/e-picture-gallery.c
index 372e70146c..dc455400b3 100644
--- a/widgets/misc/e-picture-gallery.c
+++ b/widgets/misc/e-picture-gallery.c
@@ -105,7 +105,7 @@ update_file_iter (GtkListStore *list_store,
if (filename) {
filesize = g_file_info_get_attribute_uint64 (file_info, G_FILE_ATTRIBUTE_STANDARD_SIZE);
if (filesize) {
- gchar *tmp = g_format_size_for_display ((goffset) filesize);
+ gchar *tmp = g_format_size ((goffset) filesize);
filename_text = g_strdup_printf ("%s (%s)", filename, tmp);
g_free (tmp);
}