diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2009-09-17 07:26:17 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2009-09-17 07:26:17 +0000 |
commit | 71f191b2a609e291a3afcf726ab8aacab572637b (patch) | |
tree | fa744ee9944df82548c6afb33451455c4ce7c61a /src/send_message.c | |
parent | 24c2edfeacce97b6e4c3783c53cbd2532088af95 (diff) |
introduced multi-threading.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@2255 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src/send_message.c')
-rw-r--r-- | src/send_message.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/send_message.c b/src/send_message.c index db474602..c44232d4 100644 --- a/src/send_message.c +++ b/src/send_message.c @@ -795,9 +795,12 @@ static gint send_recv_message(Session *session, const gchar *msg, gpointer data) g_return_val_if_fail(dialog != NULL, -1); + gdk_threads_enter(); + switch (smtp_session->state) { case SMTP_READY: case SMTP_CONNECTED: + gdk_threads_leave(); return 0; case SMTP_HELO: g_snprintf(buf, sizeof(buf), _("Sending HELO...")); @@ -832,14 +835,18 @@ static gint send_recv_message(Session *session, const gchar *msg, gpointer data) break; case SMTP_ERROR: g_warning("send: error: %s\n", msg); + gdk_threads_leave(); return 0; default: + gdk_threads_leave(); return 0; } progress_dialog_set_label(dialog->dialog, buf); progress_dialog_set_row_status(dialog->dialog, 0, state_str); + gdk_threads_leave(); + return 0; } @@ -855,6 +862,8 @@ static gint send_send_data_progressive(Session *session, guint cur_len, SMTP_SESSION(session)->state != SMTP_EOM) return 0; + gdk_threads_enter(); + g_snprintf(buf, sizeof(buf), _("Sending message (%d / %d bytes)"), cur_len, total_len); progress_dialog_set_label(dialog->dialog, buf); @@ -866,6 +875,7 @@ static gint send_send_data_progressive(Session *session, guint cur_len, #ifdef G_OS_WIN32 GTK_EVENTS_FLUSH(); #endif + gdk_threads_leave(); return 0; } @@ -877,6 +887,7 @@ static gint send_send_data_finished(Session *session, guint len, gpointer data) g_return_val_if_fail(dialog != NULL, -1); send_send_data_progressive(session, len, len, dialog); + return 0; } |