From: Sean Bright Date: Thu, 15 Feb 2018 20:30:35 +0000 (-0500) Subject: bridge_roles: Use a non-locking linked list where appropriate X-Git-Tag: 13.20.0-rc1~20^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=48acd5cd262e37c73e04bc22271798f68c612f69;p=thirdparty%2Fasterisk.git bridge_roles: Use a non-locking linked list where appropriate Also explicitly initialize with the AST_LIST_HEAD_NOLOCK_INIT macro for clarity. Change-Id: I4bc39ec33bc3ff77e1a971a01ace87deb965be3f --- diff --git a/main/bridge_roles.c b/main/bridge_roles.c index 1d781ca93c..d68e6b169f 100644 --- a/main/bridge_roles.c +++ b/main/bridge_roles.c @@ -53,12 +53,12 @@ struct bridge_role_option { struct bridge_role { AST_LIST_ENTRY(bridge_role) list; - AST_LIST_HEAD(, bridge_role_option) options; + AST_LIST_HEAD_NOLOCK(, bridge_role_option) options; char role[AST_ROLE_LEN]; }; struct bridge_roles_datastore { - AST_LIST_HEAD(, bridge_role) role_list; + AST_LIST_HEAD_NOLOCK(, bridge_role) role_list; }; /*! @@ -130,6 +130,8 @@ static struct bridge_roles_datastore *setup_bridge_roles_datastore(struct ast_ch return NULL; } + AST_LIST_HEAD_INIT_NOLOCK(&roles_datastore->role_list); + datastore->data = roles_datastore; ast_channel_datastore_add(chan, datastore); return roles_datastore; @@ -266,6 +268,8 @@ static int setup_bridge_role(struct bridge_roles_datastore *roles_datastore, con return -1; } + AST_LIST_HEAD_INIT_NOLOCK(&role->options); + ast_copy_string(role->role, role_name, sizeof(role->role)); AST_LIST_INSERT_TAIL(&roles_datastore->role_list, role, list);