#include <camel/camel-mime-message.h>
#include "camel/camel-string-utils.h"
#include <camel/camel-net-utils.h>
+#include "camel/camel-private.h"
#include <camel/camel-tcp-stream-ssl.h>
#include <camel/camel-tcp-stream-raw.h>
#include <camel/camel-db.h>
op = camel_operation_new (NULL, NULL);
op = camel_operation_register (op);
while (TRUE) {
+
+ CAMEL_SERVICE_REC_LOCK (is->store, connect_lock);
if (!is->stream)
imapx_reconnect(is, &ex);
+ CAMEL_SERVICE_REC_UNLOCK (is->store, connect_lock);
/* TODO:
This poll stuff wont work - we might block
if (camel_exception_is_set (&ex)) {
if (errno == EINTR || !g_ascii_strcasecmp (ex.desc, "io error")) {
- g_mutex_lock (is->connect_lock);
+
+ CAMEL_SERVICE_REC_LOCK (is->store, connect_lock);
imapx_disconnect (is);
- g_mutex_unlock (is->connect_lock);
+ CAMEL_SERVICE_REC_UNLOCK (is->store, connect_lock);
cancel_all_jobs (is, &ex);
}
ie->job_timeout = 29 * 60 * 1000 * 1000;
ie->queue_lock = g_mutex_new();
- ie->connect_lock = g_mutex_new ();
ie->tagprefix = ieclass->tagprefix;
ieclass->tagprefix++;
imapx_server_finalise(CamelIMAPXServer *ie, CamelIMAPXServerClass *ieclass)
{
g_mutex_free(ie->queue_lock);
- g_mutex_free (ie->connect_lock);;
camel_folder_change_info_free (ie->changes);
}
{
gboolean ret = FALSE;
- g_mutex_lock (is->connect_lock);
+ CAMEL_SERVICE_REC_LOCK (is->store, connect_lock);
if (state) {
pthread_t id;
CamelException ex = {0, NULL};
}
exit:
- g_mutex_unlock (is->connect_lock);
+ CAMEL_SERVICE_REC_UNLOCK (is->store, connect_lock);
return ret;
}