[asterisk-commits] rmudgett: branch rmudgett/ao2_enhancements r342221 - /team/rmudgett/ao2_enhan...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Mon Oct 24 19:11:00 CDT 2011
Author: rmudgett
Date: Mon Oct 24 19:10:56 2011
New Revision: 342221
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=342221
Log:
Branch to add enhancements to ao2 objects.
Intending to add the following features
1) Locking option for ao2 objects:
NOLOCK (object has no lock associated with it),
recursive lock (current ao2 locking),
RW lock (non-recursive)
The locking option is a requirement to allow any other kind of ao2
container because the current OBJ_NOLOCK search flag as used for Asterisk
10 ast_format codecs is incompatible.
2) Sorted ao2_container (Red-black tree implementation)
3) Dedicated node structure pool per container. This is a proposed speed
enhancement to alloc/free container nodes since the node structures are
small.
4) Global ao2 object pointer reentrancy protection wrapper calls and
structure. Currently you cannot replace or destroy a global ao2 object
because you cannot be guaranteed to get a reference to it.
struct ao2_global_obj {
ast_rwlock_t lock;
void *obj;
};
void *ao2_global_ref(struct ao2_global_obj *obj);
void *ao2_global_replace(struct ao2_global_obj *obj, void *new_obj);
Added:
team/rmudgett/ao2_enhancements/
- copied from r342220, trunk/
More information about the asterisk-commits
mailing list