Changeset 3429
- Timestamp:
- 02/21/08 18:58:16
- Files:
-
- releases/v1.0/pre-releases/v0.0.8/ChangeLog (modified) (1 diff)
- releases/v1.0/pre-releases/v0.0.8/docs/devel/reference/tmpl/tny-account-store.sgml (modified) (1 diff)
- releases/v1.0/pre-releases/v0.0.8/docs/devel/reference/tmpl/tny-account.sgml (modified) (1 diff)
- releases/v1.0/pre-releases/v0.0.8/docs/devel/reference/tmpl/tny-device.sgml (modified) (1 diff)
- releases/v1.0/pre-releases/v0.0.8/docs/devel/reference/tmpl/tny-send-queue.sgml (modified) (5 diffs)
- releases/v1.0/pre-releases/v0.0.8/docs/devel/reference/tmpl/tny-shared.sgml (modified) (4 diffs)
- releases/v1.0/pre-releases/v0.0.8/libtinymail-camel/camel-lite/camel/camel-operation.c (modified) (2 diffs)
- releases/v1.0/pre-releases/v0.0.8/libtinymail-camel/camel-lite/camel/camel-operation.h (modified) (2 diffs)
- releases/v1.0/pre-releases/v0.0.8/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-command.c (modified) (6 diffs)
- releases/v1.0/pre-releases/v0.0.8/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-store.c (modified) (4 diffs)
- releases/v1.0/pre-releases/v0.0.8/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-store.h (modified) (1 diff)
- releases/v1.0/pre-releases/v0.0.8/libtinymail-camel/camel-lite/camel/providers/pop3/camel-pop3-folder.c (modified) (9 diffs)
- releases/v1.0/pre-releases/v0.0.8/libtinymail-camel/tny-camel-mime-part.c (modified) (1 diff)
- releases/v1.0/pre-releases/v0.0.8/libtinymail-camel/tny-camel-send-queue-priv.h (modified) (1 diff)
- releases/v1.0/pre-releases/v0.0.8/libtinymail-camel/tny-camel-send-queue.c (modified) (5 diffs)
- releases/v1.0/pre-releases/v0.0.8/libtinymail-camel/tny-camel-store-account.c (modified) (1 diff)
- releases/v1.0/pre-releases/v0.0.8/tests/functional/folder-lister.c (modified) (2 diffs)
- releases/v1.0/pre-releases/v0.0.8/tests/shared/account-store.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
releases/v1.0/pre-releases/v0.0.8/ChangeLog
r3416 r3429 1 2008-02-21 Jose Dapena Paz <jdapena@igalia.com> 2 3 * libtinymail-camel/tny-camel-mime-part.c: 4 Do not lose the filename of the attachment disposition in 5 case we set it as purged. 6 7 * libtinymail-camel/tny-camel-send-queue-priv.h, 8 libtinymail-camel/tny-camel-send-queue.c: 9 Now we don't send the run-queue-stop signal until 10 we've processed all sent signals. 11 12 * libtinymail-camel/camel-lite/camel/providers/pop3/camel-pop3-folder.c: 13 Added a missing else that could cause freeing some summary info entries 14 when they shouldn't 15 16 * libtinymail-camel/camel-lite/camel/providers/pop3/camel-pop3-folder.c: 17 (pop3_get_message). Now it works even if no exception parameter is passed. 18 19 2008-02-20 Philip Van Hoof <pvanhoof@gnome.org> 20 21 * Improvement for cancel's their reconnection 22 1 23 2008-02-18 Philip Van Hoof <pvanhoof@gnome.org> 2 24 releases/v1.0/pre-releases/v0.0.8/docs/devel/reference/tmpl/tny-account-store.sgml
r3428 r3429 49 49 50 50 </para> 51 52 @:53 51 54 52 @tnyaccountstore: the object which received the signal. releases/v1.0/pre-releases/v0.0.8/docs/devel/reference/tmpl/tny-account.sgml
r3428 r3429 28 28 29 29 </para> 30 31 @: 30 32 31 33 @tnyaccount: the object which received the signal. releases/v1.0/pre-releases/v0.0.8/docs/devel/reference/tmpl/tny-device.sgml
r3428 r3429 36 36 37 37 </para> 38 39 @:40 @:41 38 42 39 @tnydevice: the object which received the signal. releases/v1.0/pre-releases/v0.0.8/docs/devel/reference/tmpl/tny-send-queue.sgml
r3428 r3429 40 40 </para> 41 41 42 @: 43 @: 44 @: 45 @: 46 42 47 @tnysendqueue: the object which received the signal. 43 48 @arg1: … … 49 54 50 55 </para> 56 57 @: 58 @: 59 @: 60 @: 61 @: 51 62 52 63 @tnysendqueue: the object which received the signal. … … 61 72 </para> 62 73 74 @: 75 @: 76 @: 77 @: 78 @: 79 63 80 @tnysendqueue: the object which received the signal. 64 81 @arg1: … … 72 89 </para> 73 90 74 @:75 76 91 @tnysendqueue: the object which received the signal. 77 92 … … 80 95 81 96 </para> 82 83 @:84 97 85 98 @tnysendqueue: the object which received the signal. releases/v1.0/pre-releases/v0.0.8/docs/devel/reference/tmpl/tny-shared.sgml
r3428 r3429 54 54 </para> 55 55 56 @ tnyaccountstore: the object which received the signal.56 @: 57 57 58 58 <!-- ##### STRUCT TnyAccountStoreIface ##### --> … … 262 262 </para> 263 263 264 @ :264 @tnyaccount: the object which received the signal. 265 265 266 266 <!-- ##### SIGNAL TnyAccount::connection-status-changed ##### --> … … 321 321 </para> 322 322 323 @ tnydevice: the object which received the signal.324 @ arg1:323 @: 324 @: 325 325 326 326 <!-- ##### STRUCT TnyDeviceIface ##### --> … … 493 493 </para> 494 494 495 @tnysendqueue: the object which received the signal. 496 @arg1: 497 @arg2: 498 @arg3: 499 500 <!-- ##### SIGNAL TnySendQueue::msg-sending ##### --> 501 <para> 502 503 </para> 504 505 @tnysendqueue: the object which received the signal. 506 @arg1: 507 @arg2: 508 @arg3: 509 @arg4: 510 511 <!-- ##### SIGNAL TnySendQueue::msg-sent ##### --> 512 <para> 513 514 </para> 515 516 @tnysendqueue: the object which received the signal. 517 @arg1: 518 @arg2: 519 @arg3: 520 @arg4: 521 522 <!-- ##### SIGNAL TnySendQueue::queue-start ##### --> 523 <para> 524 525 </para> 526 495 527 @: 528 529 <!-- ##### SIGNAL TnySendQueue::queue-stop ##### --> 530 <para> 531 532 </para> 533 496 534 @: 497 @:498 @:499 500 <!-- ##### SIGNAL TnySendQueue::msg-sending ##### -->501 <para>502 503 </para>504 505 @:506 @:507 @:508 @:509 @:510 511 <!-- ##### SIGNAL TnySendQueue::msg-sent ##### -->512 <para>513 514 </para>515 516 @:517 @:518 @:519 @:520 @:521 522 <!-- ##### SIGNAL TnySendQueue::queue-start ##### -->523 <para>524 525 </para>526 527 @tnysendqueue: the object which received the signal.528 529 <!-- ##### SIGNAL TnySendQueue::queue-stop ##### -->530 <para>531 532 </para>533 534 @tnysendqueue: the object which received the signal.535 535 536 536 <!-- ##### STRUCT TnySendQueueIface ##### --> releases/v1.0/pre-releases/v0.0.8/libtinymail-camel/camel-lite/camel/camel-operation.c
r3256 r3429 25 25 #endif 26 26 27 #include <pthread.h>28 #include <stdio.h>29 #include <unistd.h>30 #include <sys/time.h>31 32 #ifdef HAVE_NSS33 #include <nspr.h>34 #endif35 36 #include <glib.h>37 38 #include <libedataserver/e-msgport.h>39 27 40 28 #include "camel-operation.h" … … 51 39 }; 52 40 53 struct _CamelOperation { 54 struct _CamelOperation *next; 55 struct _CamelOperation *prev; 56 57 pthread_t id; /* id of running thread */ 58 guint32 flags; /* cancelled ? */ 59 int blocked; /* cancellation blocked depth */ 60 int refcount; 61 62 CamelOperationStatusFunc status; 63 void *status_data; 64 unsigned int status_update; 65 66 /* stack of status messages (struct _status_stack *) */ 67 GSList *status_stack; 68 struct _status_stack *lastreport; 69 70 EMsgPort *cancel_port; 71 int cancel_fd; 72 #ifdef HAVE_NSS 73 PRFileDesc *cancel_prfd; 41 42 #ifndef CAMEL_OPERATION_CANCELLED 43 #define CAMEL_OPERATION_CANCELLED (1<<0) 74 44 #endif 75 };76 77 #define CAMEL_OPERATION_CANCELLED (1<<0)78 45 #define CAMEL_OPERATION_TRANSIENT (1<<1) 79 46 releases/v1.0/pre-releases/v0.0.8/libtinymail-camel/camel-lite/camel/camel-operation.h
r2950 r3429 23 23 #define CAMEL_OPERATION_H 1 24 24 25 #include <pthread.h> 26 #include <stdio.h> 27 #include <unistd.h> 28 #include <sys/time.h> 29 30 31 #include <glib.h> 32 33 #include <libedataserver/e-msgport.h> 34 35 #ifdef HAVE_NSS 36 #include <nspr.h> 37 #endif 38 25 39 G_BEGIN_DECLS 26 40 … … 30 44 31 45 typedef void (*CamelOperationStatusFunc)(struct _CamelOperation *op, const char *what, int sofar, int oftotal, void *data); 46 47 #ifndef CAMEL_OPERATION_CANCELLED 48 #define CAMEL_OPERATION_CANCELLED (1<<0) 49 #endif 50 51 52 struct _CamelOperation { 53 struct _CamelOperation *next; 54 struct _CamelOperation *prev; 55 56 pthread_t id; /* id of running thread */ 57 guint32 flags; /* cancelled ? */ 58 int blocked; /* cancellation blocked depth */ 59 int refcount; 60 61 CamelOperationStatusFunc status; 62 void *status_data; 63 unsigned int status_update; 64 65 /* stack of status messages (struct _status_stack *) */ 66 GSList *status_stack; 67 struct _status_stack *lastreport; 68 69 EMsgPort *cancel_port; 70 int cancel_fd; 71 #ifdef HAVE_NSS 72 PRFileDesc *cancel_prfd; 73 #endif 74 }; 32 75 33 76 typedef enum _camel_operation_status_t { releases/v1.0/pre-releases/v0.0.8/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-command.c
r3280 r3429 370 370 371 371 372 camel_imap_recon (store, &mex );372 camel_imap_recon (store, &mex, FALSE); 373 373 imap_debug ("Recon in start: %s\n", camel_exception_get_description (&mex)); 374 374 … … 412 412 camel_exception_set (ex, CAMEL_EXCEPTION_USER_CANCEL, 413 413 _("Operation cancelled")); 414 camel_imap_recon (store, &mex );414 camel_imap_recon (store, &mex, TRUE); 415 415 imap_debug ("Recon in cont: %s\n", camel_exception_get_description (&mex)); 416 416 CAMEL_SERVICE_REC_UNLOCK (store, connect_lock); … … 711 711 camel_exception_set (ex, CAMEL_EXCEPTION_USER_CANCEL, 712 712 _("Operation cancelled")); 713 camel_imap_recon (store, &mex );713 camel_imap_recon (store, &mex, TRUE); 714 714 imap_debug ("Recon in untagged: %s\n", camel_exception_get_description (&mex)); 715 715 camel_exception_clear (&mex); … … 731 731 camel_exception_set (ex, CAMEL_EXCEPTION_USER_CANCEL, 732 732 _("Operation cancelled")); 733 camel_imap_recon (store, &mex );733 camel_imap_recon (store, &mex, TRUE); 734 734 imap_debug ("Recon in untagged idle: %s\n", camel_exception_get_description (&mex)); 735 735 camel_exception_clear (&mex); … … 876 876 camel_exception_set (ex, CAMEL_EXCEPTION_USER_CANCEL, 877 877 _("Operation cancelled")); 878 camel_imap_recon (store, &mex );878 camel_imap_recon (store, &mex, TRUE); 879 879 imap_debug ("Recon in untagged: %s\n", camel_exception_get_description (&mex)); 880 880 camel_exception_clear (&mex); … … 896 896 camel_exception_set (ex, CAMEL_EXCEPTION_USER_CANCEL, 897 897 _("Operation cancelled")); 898 camel_imap_recon (store, &mex );898 camel_imap_recon (store, &mex, TRUE); 899 899 imap_debug ("Recon in untagged idle: %s\n", camel_exception_get_description (&mex)); 900 900 camel_exception_clear (&mex); releases/v1.0/pre-releases/v0.0.8/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-store.c
r3398 r3429 160 160 161 161 void 162 camel_imap_recon (CamelImapStore *store, CamelException *mex )162 camel_imap_recon (CamelImapStore *store, CamelException *mex, gboolean was_cancel) 163 163 { 164 164 if (store->not_recon) { 165 165 camel_exception_set (mex, CAMEL_EXCEPTION_SERVICE_LOST_CONNECTION, 166 166 _("Connection lost during operation")); 167 return;168 167 } else { 169 168 CamelService *service = CAMEL_SERVICE (store); … … 195 194 196 195 service->reconnecting = FALSE; 196 } 197 198 if (was_cancel) { 199 CamelOperation *cc = camel_operation_registered (); 200 errno = EINTR; 201 cc->flags |= CAMEL_OPERATION_CANCELLED; 202 camel_operation_unref (cc); 197 203 } 198 204 } … … 4212 4218 CamelException mex = CAMEL_EXCEPTION_INITIALISER; 4213 4219 camel_exception_set (ex, CAMEL_EXCEPTION_USER_CANCEL, _("Operation cancelled")); 4214 camel_imap_recon (store, &mex );4220 camel_imap_recon (store, &mex, TRUE); 4215 4221 imap_debug ("Recon: %s\n", camel_exception_get_description (&mex)); 4216 4222 camel_exception_clear (&mex); … … 4288 4294 CamelException mex = CAMEL_EXCEPTION_INITIALISER; 4289 4295 camel_exception_set (ex, CAMEL_EXCEPTION_USER_CANCEL, _("Operation cancelled")); 4290 camel_imap_recon (store, &mex );4296 camel_imap_recon (store, &mex, TRUE); 4291 4297 imap_debug ("Recon in nl: %s\n", camel_exception_get_description (&mex)); 4292 4298 camel_exception_clear (&mex); releases/v1.0/pre-releases/v0.0.8/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-store.h
r3235 r3429 198 198 void camel_imap_store_stop_idle (CamelImapStore *store); 199 199 void camel_imap_store_start_idle (CamelImapStore *store); 200 void camel_imap_recon (CamelImapStore *store, CamelException *mex );200 void camel_imap_recon (CamelImapStore *store, CamelException *mex, gboolean was_cancel); 201 201 202 202 G_END_DECLS releases/v1.0/pre-releases/v0.0.8/libtinymail-camel/camel-lite/camel/providers/pop3/camel-pop3-folder.c
r3296 r3429 928 928 gint retry = 0; 929 929 gboolean had_attachment = FALSE; 930 gboolean free_ex = FALSE; 931 932 if (!ex) { 933 free_ex = TRUE; 934 ex = camel_exception_new (); 935 } 930 936 931 937 if (!uid) 932 return;938 goto do_free_ex; 933 939 934 940 pop3_debug ("%s requested\n", uid); … … 952 958 camel_object_unref (CAMEL_OBJECT (stream)); 953 959 954 return message;960 goto do_free_ex; 955 961 } 956 962 … … 959 965 camel_exception_set (ex, CAMEL_EXCEPTION_FOLDER_UID_NOT_AVAILABLE, 960 966 _("This message is not currently available")); 961 return NULL;967 goto do_free_ex; 962 968 } 963 969 … … 1028 1034 1029 1035 g_static_rec_mutex_unlock (pop3_store->uidl_lock); 1030 return NULL;1036 goto do_free_ex; 1031 1037 } 1032 1038 } … … 1041 1047 1042 1048 g_static_rec_mutex_unlock (pop3_store->uidl_lock); 1043 return NULL;1049 goto do_free_ex; 1044 1050 } 1045 1051 … … 1054 1060 g_static_rec_mutex_unlock (pop3_store->eng_lock); 1055 1061 g_static_rec_mutex_unlock (pop3_store->uidl_lock); 1056 return NULL;1062 goto do_free_ex; 1057 1063 } 1058 1064 } … … 1134 1140 || (stream = camel_data_cache_add(pop3_store->cache, "cache", fi->uid, ex)) == NULL) { 1135 1141 /* stream = camel_stream_mem_new(); */ 1136 return NULL;1142 goto do_free_ex; 1137 1143 } 1138 1144 … … 1244 1250 camel_message_info_set_flags((CamelMessageInfo *) mi, CAMEL_MESSAGE_ATTACHMENTS, CAMEL_MESSAGE_ATTACHMENTS); 1245 1251 camel_folder_summary_add (summary, (CamelMessageInfo *)mi); 1246 } if (mi) {1252 } else if (mi) { 1247 1253 if (had_attachment) 1248 1254 camel_message_info_set_flags((CamelMessageInfo *) mi, CAMEL_MESSAGE_ATTACHMENTS, CAMEL_MESSAGE_ATTACHMENTS); … … 1261 1267 g_static_rec_mutex_unlock (pop3_store->uidl_lock); 1262 1268 1269 do_free_ex: 1270 if (free_ex) 1271 camel_exception_free (ex); 1263 1272 return message; 1264 1273 } releases/v1.0/pre-releases/v0.0.8/libtinymail-camel/tny-camel-mime-part.c
r3388 r3429 1162 1162 { 1163 1163 TnyCamelMimePartPriv *priv = TNY_CAMEL_MIME_PART_GET_PRIVATE (self); 1164 g_mutex_lock (priv->part_lock); 1164 const gchar *tmp; 1165 gchar *filename = NULL; 1166 g_mutex_lock (priv->part_lock); 1167 tmp = camel_mime_part_get_filename (priv->part); 1168 if (tmp != NULL) 1169 filename = g_strdup (tmp); 1165 1170 camel_mime_part_set_disposition (priv->part, "purged"); 1171 if (filename) { 1172 camel_mime_part_set_filename (priv->part, filename); 1173 g_free (filename); 1174 } 1166 1175 g_mutex_unlock (priv->part_lock); 1167 1176 return; releases/v1.0/pre-releases/v0.0.8/libtinymail-camel/tny-camel-send-queue-priv.h
r2825 r3429 36 36 gboolean do_continue, is_running; 37 37 gboolean observer_attached; 38 gint pending_send_notifies; 38 39 }; 39 40 releases/v1.0/pre-releases/v0.0.8/libtinymail-camel/tny-camel-send-queue.c
r3304 r3429 72 72 73 73 74 static void emit_queue_control_signals (TnySendQueue *self, guint signal_id); 75 74 76 static TnyFolder* 75 77 get_sentbox (TnySendQueue *self) … … 235 237 } 236 238 239 priv->pending_send_notifies--; 240 if (priv->pending_send_notifies == 0 && priv->thread == NULL) { 241 emit_queue_control_signals (self, TNY_SEND_QUEUE_STOP); 242 } 243 237 244 g_object_unref (self); 238 245 } … … 264 271 while (!tny_iterator_is_done (iter)) 265 272 { 273 TnyCamelSendQueuePriv *priv = TNY_CAMEL_SEND_QUEUE_GET_PRIVATE (self); 266 274 TnyHeader *cur = TNY_HEADER (tny_iterator_get_current (iter)); 275 priv->pending_send_notifies++; 267 276 tny_folder_get_msg_async (sentbox, cur, 268 277 on_msg_sent_get_msg, on_status, … … 290 299 TnyCamelAccountPriv *apriv = NULL; 291 300 301 if ((priv->pending_send_notifies > 0) && (info->signal_id == TNY_SEND_QUEUE_STOP)) 302 return FALSE; 292 303 if (priv && priv->trans_account) 293 304 apriv = TNY_CAMEL_ACCOUNT_GET_PRIVATE (priv->trans_account); … … 1135 1146 priv->is_running = FALSE; 1136 1147 priv->thread = NULL; 1148 priv->pending_send_notifies = 0; 1137 1149 1138 1150 return; releases/v1.0/pre-releases/v0.0.8/libtinymail-camel/tny-camel-store-account.c
r3414 r3429 1951 1951 1952 1952 if (!apriv->service) { 1953 GError *err = NULL; 1954 g_set_error (&err, TNY_SYSTEM_ERROR, TNY_SYSTEM_ERROR_MEMORY, 1955 _("Internal error, account not ready")); 1956 callback ((TnyCamelAccount *) self, TRUE, err, user_data); 1957 g_error_free (err); 1953 if (callback) { 1954 GError *err = NULL; 1955 g_set_error (&err, TNY_SYSTEM_ERROR, TNY_SYSTEM_ERROR_MEMORY, 1956 _("Internal error, account not ready")); 1957 callback ((TnyCamelAccount *) self, TRUE, err, user_data); 1958 g_error_free (err); 1959 } 1958 1960 return; 1959 1961 } releases/v1.0/pre-releases/v0.0.8/tests/functional/folder-lister.c
r3315 r3429 19 19 #include <stdlib.h> 20 20 #include <glib.h> 21 #include <gtk/gtk.h> 21 22 22 23 #include <tny-list.h> … … 113 114 recurse_folders (TNY_FOLDER_STORE (account), NULL); 114 115 116 gtk_main(); 117 115 118 g_object_unref (account); 116 119 g_object_unref (iter); releases/v1.0/pre-releases/v0.0.8/tests/shared/account-store.c
r3304 r3429 99 99 } 100 100 101 typedef struct { 102 GCond *condition; 103 GMutex *mutex; 104 gboolean had_callback; 105 } SyncInfo; 106 107 108 static void went_online (TnyCamelAccount *account, gboolean canceled, GError *err, gpointer user_data) 109 { 110 SyncInfo *info = (SyncInfo *) user_data; 111 112 g_mutex_lock (info->mutex); 113 g_cond_broadcast (info->condition); 114 info->had_callback = TRUE; 115 g_mutex_unlock (info->mutex); 116 117 return; 118 } 101 119 102 120 static void … … 116 134 tny_camel_account_set_session (TNY_CAMEL_ACCOUNT (account), me->session); 117 135 camel_session_set_online ((CamelSession*)me->session, me->force_online); 118 tny_camel_account_set_online (TNY_CAMEL_ACCOUNT (account), me->force_online, NULL, NULL);119 136 120 137 tny_account_set_proto (account, "imap"); … … 126 143 tny_account_set_pass_func (account, per_account_get_pass); 127 144 145 if (me->force_online) { 146 SyncInfo *info = g_slice_new (SyncInfo); 147 148 info->mutex = g_mutex_new (); 149 info->condition = g_cond_new (); 150 info->had_callback = FALSE; 151 152 tny_camel_account_set_online (TNY_CAMEL_ACCOUNT (account), me->force_online, went_online, info); 153 154 g_mutex_lock (info->mutex); 155 if (!info->had_callback) 156 g_cond_wait (info->condition, info->mutex); 157 g_mutex_unlock (info->mutex); 158 159 g_mutex_free (info->mutex); 160 g_cond_free (info->condition); 161 g_slice_free (SyncInfo, info); 162 } 163 128 164 tny_list_prepend (list, (GObject*)account); 129 165 g_object_unref (G_OBJECT (account)); … … 136 172 tny_camel_account_set_session (TNY_CAMEL_ACCOUNT (account), me->session); 137 173 camel_session_set_online ((CamelSession*)me->session, me->force_online); 138 tny_camel_account_set_online (TNY_CAMEL_ACCOUNT (account), me->force_online, NULL, NULL);139 174 140 175 tny_account_set_proto (account, "something"); … … 145 180 tny_account_set_forget_pass_func (account, per_account_forget_pass); 146 181 tny_account_set_pass_func (account, per_account_get_pass); 182 183 if (me->force_online) { 184 SyncInfo *info = g_slice_new (SyncInfo); 185 186 info->mutex = g_mutex_new (); 187 info->condition = g_cond_new (); 188 info->had_callback = FALSE; 189 190 tny_camel_account_set_online (TNY_CAMEL_ACCOUNT (account), me->force_online, went_online, info); 191 192 g_mutex_lock (info->mutex); 193 if (!info->had_callback) 194 g_cond_wait (info->condition, info->mutex); 195 g_mutex_unlock (info->mutex); 196 197 g_mutex_free (info->mutex); 198 g_cond_free (info->condition); 199 g_slice_free (SyncInfo, info); 200 } 147 201 148 202 tny_list_prepend (list, (GObject*)account);
