Fix unpleasant issue with (remove_item) more elegantly. Instead of
authorMichael Meeks <michael.meeks@novell.com>
Mon, 1 Mar 2010 11:23:18 +0000 (11:23 +0000)
committerMichael Meeks <michael.meeks@novell.com>
Mon, 1 Mar 2010 11:23:18 +0000 (11:23 +0000)
commitc5a86b33ef7d10d25b227221efec8106d8c82ed9
tree83e307cf154bcb22b6241ab6cc31ebf70c1dd746
parentf195a4f7134706524ce616d052dfc946e7c00798
Fix unpleasant issue with (remove_item) more elegantly. Instead of
taking an untaking the ref-lock thousands of times, and trying to
free messages inside the loop (while cobbering their uid to encourage
message_info_free not to do an unsave hash table removal, inside the
g_hash_table_foreach_remove loop).
Instead - we now just build a list very quickly of the messages we
want to drop. As such, the hash table iteration will be ~instant,
and we do not need to take / drop the lock each iteration, simplifying
and perhaps accelerating the code. We then free the messages later
before releasing the summary lock.
camel/camel-folder-summary.c