Merge "sounds_index: Avoid repeatedly reindexing."

This commit is contained in:
George Joseph
2017-12-07 13:26:22 -06:00
committed by Gerrit Code Review
2 changed files with 11 additions and 5 deletions

View File

@@ -4617,9 +4617,14 @@ static void asterisk_daemon(int isroot, const char *runuser, const char *rungrou
check_init(init_manager(), "Asterisk Manager Interface");
check_init(ast_enum_init(), "ENUM Support");
check_init(ast_cc_init(), "Call Completion Supplementary Services");
check_init(ast_sounds_index_init(), "Sounds Indexer");
check_init(load_modules(0), "Module");
/*
* This is initialized after the dynamic modules load to avoid repeatedly
* reindexing sounds for every format module load.
*/
check_init(ast_sounds_index_init(), "Sounds Indexer");
/*
* This has to load after the dynamic modules load, as items in the media
* cache can't be constructed from items in the AstDB without their

View File

@@ -285,13 +285,15 @@ static void sounds_cleanup(void)
static void format_update_cb(void *data, struct stasis_subscription *sub,
struct stasis_message *message)
{
ast_sounds_reindex();
/* Reindexing during shutdown is pointless. */
if (!ast_shutting_down()) {
ast_sounds_reindex();
}
}
int ast_sounds_index_init(void)
{
int res = 0;
sounds_index = NULL;
if (ast_sounds_reindex()) {
return -1;
}
@@ -328,6 +330,5 @@ int ast_sounds_index_init(void)
struct ast_media_index *ast_sounds_get_index(void)
{
ao2_ref(sounds_index, +1);
return sounds_index;
return ao2_bump(sounds_index);
}