aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-10-31 15:34:11 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-10-31 15:34:11 +0000
commit3b5ed22f129ad87a256092965b6537c8bb86cede (patch)
treee17cabde9991f5c9bc212138afd5b7b1206e8c03 /include
parent8615ded129565bd250218b36451f154e0c14ecec (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-xinclude/asterisk/cdr.h1
-rwxr-xr-xinclude/asterisk/chanvars.h2
-rwxr-xr-xinclude/asterisk/linkedlists.h2
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)
/*!