gchar *user_cache_dir;
GHashTable *services;
+ GMutex *services_lock;
+
GHashTable *junk_headers;
CamelJunkFilter *junk_filter;
g_mutex_free (priv->lock);
g_mutex_free (priv->thread_lock);
+ g_mutex_free (priv->services_lock);
+
if (priv->junk_headers) {
g_hash_table_remove_all (priv->junk_headers);
g_hash_table_destroy (priv->junk_headers);
/* The hash table takes ownership of the new CamelService. */
if (service != NULL) {
- camel_session_lock (session, CAMEL_SESSION_SESSION_LOCK);
+ g_mutex_lock (session->priv->services_lock);
g_hash_table_insert (
session->priv->services,
g_strdup (uid), service);
- camel_session_unlock (session, CAMEL_SESSION_SESSION_LOCK);
+ g_mutex_unlock (session->priv->services_lock);
}
return service;
{
const gchar *uid;
- camel_session_lock (session, CAMEL_SESSION_SESSION_LOCK);
+ g_mutex_lock (session->priv->services_lock);
uid = camel_service_get_uid (service);
g_hash_table_remove (session->priv->services, uid);
- camel_session_unlock (session, CAMEL_SESSION_SESSION_LOCK);
+ g_mutex_unlock (session->priv->services_lock);
}
static void
session->priv->lock = g_mutex_new ();
session->priv->thread_lock = g_mutex_new ();
session->priv->services = services;
+ session->priv->services_lock = g_mutex_new ();
session->priv->junk_headers = NULL;
session->priv->main_context = g_main_context_ref_thread_default ();
g_return_val_if_fail (CAMEL_IS_SESSION (session), NULL);
g_return_val_if_fail (uid != NULL, NULL);
- camel_session_lock (session, CAMEL_SESSION_SESSION_LOCK);
+ g_mutex_lock (session->priv->services_lock);
service = g_hash_table_lookup (session->priv->services, uid);
- camel_session_unlock (session, CAMEL_SESSION_SESSION_LOCK);
+ g_mutex_unlock (session->priv->services_lock);
return service;
}
g_return_val_if_fail (CAMEL_IS_SESSION (session), NULL);
- camel_session_lock (session, CAMEL_SESSION_SESSION_LOCK);
+ g_mutex_lock (session->priv->services_lock);
list = g_hash_table_get_values (session->priv->services);
- camel_session_unlock (session, CAMEL_SESSION_SESSION_LOCK);
+ g_mutex_unlock (session->priv->services_lock);
return list;
}
{
g_return_if_fail (CAMEL_IS_SESSION (session));
- camel_session_lock (session, CAMEL_SESSION_SESSION_LOCK);
+ g_mutex_lock (session->priv->services_lock);
g_hash_table_remove_all (session->priv->services);
- camel_session_unlock (session, CAMEL_SESSION_SESSION_LOCK);
+ g_mutex_unlock (session->priv->services_lock);
}
/**