Ignore whether or not the bag is currently reserved. We'll miss the new
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. svn path=/trunk/; revision=20514
This commit is contained in:
@ -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
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user