diff options
-rw-r--r-- | camel/ChangeLog | 6 | ||||
-rw-r--r-- | camel/camel-object.c | 19 |
2 files changed, 8 insertions, 17 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index 0eb07bf1e3..87e6c8d523 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,3 +1,9 @@ +2003-03-27 Not Zed <NotZed@Ximian.com> + + * camel-object.c (camel_object_bag_list): Ignore whether or not + the bag is currently reserved. We'll miss the new potential + object, but only 1. Should address #40103. + 2003-03-25 Jeffrey Stedfast <fejj@ximian.com> * camel-service.c (camel_gethostbyaddr): Don't use setv when we diff --git a/camel/camel-object.c b/camel/camel-object.c index 79e993b10e..0c08ab7fa9 100644 --- a/camel/camel-object.c +++ b/camel/camel-object.c @@ -1253,33 +1253,18 @@ save_bag(char *key, CamelObject *o, GPtrArray *list) g_ptr_array_add(list, o); } -/* get a list of all objects in the bag, ref'd */ +/* get a list of all objects in the bag, ref'd + ignores any reserved keys */ GPtrArray *camel_object_bag_list(CamelObjectBag *bag) { GPtrArray *list; -#ifdef ENABLE_THREADS - pthread_t id; -#endif list = g_ptr_array_new(); -#ifdef ENABLE_THREADS - /* make sure we own the bag */ - id = pthread_self(); - if (bag->owner != id) - sem_wait(&bag->reserve_sem); -#endif - E_LOCK(type_lock); g_hash_table_foreach(bag->object_table, (GHFunc)save_bag, list); E_UNLOCK(type_lock); -#ifdef ENABLE_THREADS - /* ... and now we no longer need it */ - if (bag->owner != id) - sem_post(&bag->reserve_sem); -#endif - return list; } |