Merge "bridge_roles: Use a non-locking linked list where appropriate" into 13

certified/13.21
Jenkins2 7 years ago committed by Gerrit Code Review
commit d09954b192

@ -53,12 +53,12 @@ struct bridge_role_option {
struct bridge_role { struct bridge_role {
AST_LIST_ENTRY(bridge_role) list; 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]; char role[AST_ROLE_LEN];
}; };
struct bridge_roles_datastore { 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; return NULL;
} }
AST_LIST_HEAD_INIT_NOLOCK(&roles_datastore->role_list);
datastore->data = roles_datastore; datastore->data = roles_datastore;
ast_channel_datastore_add(chan, datastore); ast_channel_datastore_add(chan, datastore);
return roles_datastore; return roles_datastore;
@ -266,6 +268,8 @@ static int setup_bridge_role(struct bridge_roles_datastore *roles_datastore, con
return -1; return -1;
} }
AST_LIST_HEAD_INIT_NOLOCK(&role->options);
ast_copy_string(role->role, role_name, sizeof(role->role)); ast_copy_string(role->role, role_name, sizeof(role->role));
AST_LIST_INSERT_TAIL(&roles_datastore->role_list, role, list); AST_LIST_INSERT_TAIL(&roles_datastore->role_list, role, list);

Loading…
Cancel
Save