[svn-commits] mmichelson: branch mmichelson/ao2_containers r165038 - in /team/mmichelson/ao...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Tue Dec 16 18:22:02 CST 2008


Author: mmichelson
Date: Tue Dec 16 18:22:02 2008
New Revision: 165038

URL: http://svn.digium.com/view/asterisk?view=rev&rev=165038
Log:
More documentation updates


Modified:
    team/mmichelson/ao2_containers/include/asterisk/astobj2_private.h
    team/mmichelson/ao2_containers/main/astobj2_hashtable.c

Modified: team/mmichelson/ao2_containers/include/asterisk/astobj2_private.h
URL: http://svn.digium.com/view/asterisk/team/mmichelson/ao2_containers/include/asterisk/astobj2_private.h?view=diff&rev=165038&r1=165037&r2=165038
==============================================================================
--- team/mmichelson/ao2_containers/include/asterisk/astobj2_private.h (original)
+++ team/mmichelson/ao2_containers/include/asterisk/astobj2_private.h Tue Dec 16 18:22:02 2008
@@ -6,12 +6,11 @@
 #include "asterisk/lock.h"
 
 /*!
- * A container; stores the hash and callback functions, information on
- * the size, the hash bucket heads, and a version number, starting at 0
- * (for a newly created, empty container)
- * and incremented every time an object is inserted or deleted.
- * The assumption is that an object is never moved in a container,
- * but removed and readded with the new number.
+ * A container; comparison function, information on the size, 
+ * and a version number, starting at 0 (for a newly created, 
+ * empty container) and incremented every time an object is inserted 
+ * or deleted. The assumption is that an object is never moved 
+ * in a container, but removed and readded with the new number.
  * The version number is especially useful when implementing iterators.
  * In fact, we can associate a unique, monotonically increasing number to
  * each object, which means that, within an iterator, we can store the
@@ -20,13 +19,7 @@
  * Since all objects have a version >0, we can use 0 as a marker for
  * 'we need the first object in the bucket'.
  *
- * \todo Linking and unlink objects is typically expensive, as it
- * involves a malloc() of a small object which is very inefficient.
- * To optimize this, we allocate larger arrays of bucket_list's
- * when we run out of them, and then manage our own freelist.
- * This will be more efficient as we can do the freelist management while
- * we hold the lock (that we need anyways).
- */
+  */
 struct ao2_container {
 	const struct ao2_container_impl *impl;
 	ao2_callback_fn *cmp_fn;
@@ -35,7 +28,7 @@
 	/*! described above */
 	int version;
 	/*! container data specific to each implementation */
-	void *private;
+	void *priv;
 };
 
 /*!

Modified: team/mmichelson/ao2_containers/main/astobj2_hashtable.c
URL: http://svn.digium.com/view/asterisk/team/mmichelson/ao2_containers/main/astobj2_hashtable.c?view=diff&rev=165038&r1=165037&r2=165038
==============================================================================
--- team/mmichelson/ao2_containers/main/astobj2_hashtable.c (original)
+++ team/mmichelson/ao2_containers/main/astobj2_hashtable.c Tue Dec 16 18:22:02 2008
@@ -57,7 +57,8 @@
  *
  * it is convenient to have a hash function that always returns 0.
  * This is basically used when we want to have a container that is
- * a simple linked list.
+ * a simple linked list. It is preferable to use the ao2_linkedlist
+ * implementation instead though.
  *
  * \returns 0
  */
@@ -89,6 +90,13 @@
 	return hashtable;
 }
 
+/* \todo Linking and unlink objects is typically expensive, as it
+ * involves a malloc() of a small object which is very inefficient.
+ * To optimize this, we allocate larger arrays of bucket_list's
+ * when we run out of them, and then manage our own freelist.
+ * This will be more efficient as we can do the freelist management while
+ * we hold the lock (that we need anyways).
+ */
 static void *hashtable_link(struct ao2_container *c, struct astobj2 *newobj)
 {
 	struct bucket_list *bl;




More information about the svn-commits mailing list