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:
Not Zed
2003-03-26 07:01:38 +00:00
committed by Michael Zucci
parent 738282ff28
commit ee847725ec
2 changed files with 8 additions and 17 deletions

View File

@ -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

View File

@ -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;
}