[evolution-data-server] Bug 720197 - [IMAPx] Indefinite waiting for message download
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Bug 720197 - [IMAPx] Indefinite waiting for message download
- Date: Tue, 3 Mar 2015 11:54:05 +0000 (UTC)
commit e3aa112ae95e44a752c5981836aa9f5e4983a379
Author: Milan Crha <mcrha redhat com>
Date: Tue Mar 3 12:51:38 2015 +0100
Bug 720197 - [IMAPx] Indefinite waiting for message download
camel/providers/imapx/camel-imapx-server.c | 22 +++++++++++++++++++---
1 files changed, 19 insertions(+), 3 deletions(-)
---
diff --git a/camel/providers/imapx/camel-imapx-server.c b/camel/providers/imapx/camel-imapx-server.c
index 3020c37..cf5aa15 100644
--- a/camel/providers/imapx/camel-imapx-server.c
+++ b/camel/providers/imapx/camel-imapx-server.c
@@ -1025,8 +1025,7 @@ static void
imapx_unregister_job (CamelIMAPXServer *is,
CamelIMAPXJob *job)
{
- if (!job->noreply)
- camel_imapx_job_done (job);
+ camel_imapx_job_done (job);
QUEUE_LOCK (is);
@@ -1045,10 +1044,17 @@ imapx_submit_job (CamelIMAPXServer *is,
CamelIMAPXJob *job,
GError **error)
{
+ gboolean success;
+
if (!imapx_register_job (is, job, error))
return FALSE;
- return camel_imapx_job_run (job, is, error);
+ success = camel_imapx_job_run (job, is, error);
+
+ if (!success)
+ imapx_unregister_job (is, job);
+
+ return success;
}
static CamelFolder *
@@ -8383,6 +8389,8 @@ imapx_server_get_message (CamelIMAPXServer *is,
if (registered && camel_imapx_job_run (job, is, error))
stream = camel_stream_new (data->stream);
+ else if (registered)
+ imapx_unregister_job (is, job);
camel_imapx_job_unref (job);
@@ -8759,6 +8767,8 @@ camel_imapx_server_refresh_info (CamelIMAPXServer *is,
if (registered && camel_imapx_job_run (job, is, error)) {
changes = data->changes;
data->changes = NULL;
+ } else if (registered) {
+ imapx_unregister_job (is, job);
}
if (registered)
@@ -9096,6 +9106,9 @@ imapx_server_sync_changes (CamelIMAPXServer *is,
success = registered && camel_imapx_job_run (job, is, error);
+ if (!success && registered)
+ imapx_unregister_job (is, job);
+
if (job_type == IMAPX_JOB_SYNC_CHANGES && registered)
camel_imapx_mailbox_unlock_update (mailbox);
@@ -9160,6 +9173,9 @@ camel_imapx_server_expunge (CamelIMAPXServer *is,
success = registered && camel_imapx_job_run (job, is, error);
+ if (!success && registered)
+ imapx_unregister_job (is, job);
+
camel_imapx_job_unref (job);
return success;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]