diff options
author | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-10-31 15:34:11 +0000 |
---|---|---|
committer | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-10-31 15:34:11 +0000 |
commit | 3b5ed22f129ad87a256092965b6537c8bb86cede (patch) | |
tree | e17cabde9991f5c9bc212138afd5b7b1206e8c03 /include | |
parent | 8615ded129565bd250218b36451f154e0c14ecec (diff) |
fix various bugs related to list handling of channel variables (issue #5548)
use nolock lists for channel variables, since no locks are needed (these lists are either temporary or protected by the channel's own lock)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6900 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'include')
-rwxr-xr-x | include/asterisk/cdr.h | 1 | ||||
-rwxr-xr-x | include/asterisk/chanvars.h | 2 | ||||
-rwxr-xr-x | include/asterisk/linkedlists.h | 2 |
3 files changed, 4 insertions, 1 deletions
diff --git a/include/asterisk/cdr.h b/include/asterisk/cdr.h index e14b7c653..2ca567134 100755 --- a/include/asterisk/cdr.h +++ b/include/asterisk/cdr.h @@ -47,7 +47,6 @@ #include "asterisk/channel.h" struct ast_channel; -AST_LIST_HEAD(varshead,ast_var_t); /*! Responsible for call detail data */ struct ast_cdr { diff --git a/include/asterisk/chanvars.h b/include/asterisk/chanvars.h index 32cccf334..d31c05e86 100755 --- a/include/asterisk/chanvars.h +++ b/include/asterisk/chanvars.h @@ -31,6 +31,8 @@ struct ast_var_t { char name[0]; }; +AST_LIST_HEAD_NOLOCK(varshead, ast_var_t); + struct ast_var_t *ast_var_assign(const char *name, const char *value); void ast_var_delete(struct ast_var_t *var); char *ast_var_name(struct ast_var_t *var); diff --git a/include/asterisk/linkedlists.h b/include/asterisk/linkedlists.h index 3dcd9a563..fd2203cd7 100755 --- a/include/asterisk/linkedlists.h +++ b/include/asterisk/linkedlists.h @@ -369,6 +369,8 @@ struct { \ #define AST_LIST_INSERT_HEAD(head, elm, field) do { \ (elm)->field.next = (head)->first; \ (head)->first = (elm); \ + if (!(head)->last) \ + (head)->last = (elm); \ } while (0) /*! |