Changeset 2371

Show
Ignore:
Timestamp:
07/04/07 11:15:44
Author:
pvanhoof
Message:

Bugfix, made the lock smaller

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libtinymail-camel/tny-session-camel-priv.h

    r2370 r2371  
    1515        gboolean async_connect; 
    1616        TnyLockable *ui_lock; 
    17         GMutex *conlock
     17        GMutex *conlock, *queue_lock
    1818        GThread *conthread; 
    1919        gboolean is_inuse; 
  • trunk/libtinymail-camel/tny-session-camel.c

    r2370 r2371  
    370370        priv->is_inuse = FALSE; 
    371371        priv->conlock = g_mutex_new (); 
     372        priv->queue_lock = g_mutex_new (); 
    372373        priv->conthread = NULL; 
    373374        priv->current_accounts = NULL; 
     
    506507        g_mutex_lock (priv->conlock); 
    507508 
     509        g_mutex_lock (priv->queue_lock); 
    508510        g_list_foreach (priv->regged_queues, (GFunc)  
    509511                tny_camel_send_queue_join_worker, NULL); 
     512        g_mutex_unlock (priv->queue_lock); 
    510513 
    511514        priv->is_connecting = TRUE; 
     
    677680        TnySessionCamelPriv *priv = self->priv; 
    678681 
    679         g_mutex_lock (priv->conlock); 
     682        g_mutex_lock (priv->queue_lock); 
    680683        priv->regged_queues = g_list_remove (priv->regged_queues, queue); 
    681         g_mutex_unlock (priv->conlock); 
     684        g_mutex_unlock (priv->queue_lock); 
    682685} 
    683686 
     
    687690        TnySessionCamelPriv *priv = self->priv; 
    688691 
    689         g_mutex_lock (priv->conlock); 
     692        g_mutex_lock (priv->queue_lock); 
    690693        priv->regged_queues = g_list_prepend (priv->regged_queues, queue); 
    691         g_mutex_unlock (priv->conlock); 
     694        g_mutex_unlock (priv->queue_lock); 
    692695} 
    693696 
     
    719722        TnySessionCamelPriv *priv = self->priv; 
    720723 
    721         g_mutex_lock (priv->conlock); 
     724        g_mutex_lock (priv->queue_lock); 
    722725        g_list_free (priv->regged_queues); 
    723726        priv->regged_queues = NULL; 
    724         g_mutex_unlock (priv->conlock); 
     727        g_mutex_unlock (priv->queue_lock); 
    725728 
    726729        if (priv->device && g_signal_handler_is_connected (G_OBJECT (priv->device), priv->connchanged_signal)) 
     
    737740 
    738741        g_mutex_free (priv->conlock); 
     742        g_mutex_free (priv->queue_lock); 
    739743 
    740744        g_slice_free (TnySessionCamelPriv, self->priv);