2005-06-12 [colin] 1.9.11cvs63
authorColin Leroy <colin@colino.net>
Sun, 12 Jun 2005 19:48:04 +0000 (19:48 +0000)
committerColin Leroy <colin@colino.net>
Sun, 12 Jun 2005 19:48:04 +0000 (19:48 +0000)
* src/folder.c
lock incorporation during long operations.
Avoids fucking up the IMAP socket.

ChangeLog-gtk2.claws
PATCHSETS
configure.ac
src/folder.c

index 4a6cea9e505a3e0ae5fd29f3f94b6197605a1c5a..49ce03319423e0022788ff6964310255178c90da 100644 (file)
@@ -1,3 +1,9 @@
+2005-06-12 [colin]     1.9.11cvs63
+
+       * src/folder.c
+               lock incorporation during long operations.
+               Avoids fucking up the IMAP socket.
+
 2005-06-12 [colin]     1.9.11cvs62
 
        * src/imap.c
index 8ef2fa0536b555697a5847512a1c6c23cfff56b4..ea6926eef7a88c83c3a1d43993a0fc4859be632d 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.179.2.27 -r 1.179.2.28 src/imap.c;  ) > 1.9.11cvs60.patchset
 ( cvs diff -u -r 1.213.2.29 -r 1.213.2.30 src/folder.c;  cvs diff -u -r 1.87.2.10 -r 1.87.2.11 src/folder.h;  cvs diff -u -r 1.179.2.28 -r 1.179.2.29 src/imap.c;  ) > 1.9.11cvs61.patchset
 ( cvs diff -u -r 1.179.2.29 -r 1.179.2.30 src/imap.c;  cvs diff -u -r 1.395.2.78 -r 1.395.2.79 src/summaryview.c;  cvs diff -u -r 1.213.2.30 -r 1.213.2.31 src/folder.c;  ) > 1.9.11cvs62.patchset
+( cvs diff -u -r 1.213.2.31 -r 1.213.2.32 src/folder.c;  ) > 1.9.11cvs63.patchset
index 7c394ca2ddf2e80ec91738d3cf78f5bd2fe909de..92e996618531323481b3219ea8267f80cbbfb66c 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=9
 MICRO_VERSION=11
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=62
+EXTRA_VERSION=63
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 4428181f12e6469ffd6be628b3448cb4d26c1538..895849bf4ad842bcd32cf26b70aa4f2fa3572f72 100644 (file)
@@ -2729,10 +2729,13 @@ gint folder_item_move_msg(FolderItem *dest, MsgInfo *msginfo)
  */
 gint folder_item_move_msgs(FolderItem *dest, GSList *msglist)
 {
+       gint result = -1;
        g_return_val_if_fail(dest != NULL, -1);
        g_return_val_if_fail(msglist != NULL, -1);
-
-       return do_copy_msgs(dest, msglist, TRUE);
+       inc_lock();
+       result = do_copy_msgs(dest, msglist, TRUE);
+       inc_unlock();
+       return result;
 }
 
 /**
@@ -2750,7 +2753,7 @@ gint folder_item_copy_msg(FolderItem *dest, MsgInfo *msginfo)
     
        list.data = msginfo;
        list.next = NULL;
-       
+
        return do_copy_msgs(dest, &list, FALSE);
 }
 
@@ -2762,10 +2765,15 @@ gint folder_item_copy_msg(FolderItem *dest, MsgInfo *msginfo)
  */
 gint folder_item_copy_msgs(FolderItem *dest, GSList *msglist)
 {
+       gint result;
        g_return_val_if_fail(dest != NULL, -1);
        g_return_val_if_fail(msglist != NULL, -1);
 
-       return do_copy_msgs(dest, msglist, FALSE);
+       inc_lock();
+       result = do_copy_msgs(dest, msglist, FALSE);
+       inc_unlock();
+       
+       return result;
 }
 
 gint folder_item_remove_msg(FolderItem *item, gint num)
@@ -2799,7 +2807,7 @@ gint folder_item_remove_msgs(FolderItem *item, GSList *msglist)
        g_return_val_if_fail(item != NULL, -1);
        folder = item->folder;
        g_return_val_if_fail(folder != NULL, -1);
-
+       inc_lock();
        if (!item->cache) folder_item_read_cache(item);
 
        folder_item_update_freeze();
@@ -2823,7 +2831,7 @@ gint folder_item_remove_msgs(FolderItem *item, GSList *msglist)
        }
        folder_item_scan_full(item, FALSE);
        folder_item_update_thaw();
-
+       inc_unlock();
        return ret;
 }
 
@@ -2836,6 +2844,7 @@ gint folder_item_remove_all_msg(FolderItem *item)
 
        folder = item->folder;
 
+       inc_lock();
        if (folder->klass->remove_all_msg != NULL) {
                result = folder->klass->remove_all_msg(folder, item);
 
@@ -2859,6 +2868,7 @@ gint folder_item_remove_all_msg(FolderItem *item)
                folder_item_update(item, F_ITEM_UPDATE_MSGCNT | F_ITEM_UPDATE_CONTENT);
        }
 
+       inc_unlock();
        return result;
 }