diff --git a/ompi/mca/mpool/base/mpool_base_lookup.c b/ompi/mca/mpool/base/mpool_base_lookup.c index e4cfa4c1e6..aa55ba68a6 100644 --- a/ompi/mca/mpool/base/mpool_base_lookup.c +++ b/ompi/mca/mpool/base/mpool_base_lookup.c @@ -68,25 +68,16 @@ mca_mpool_base_module_t* mca_mpool_base_module_create( { mca_mpool_base_component_t* component = NULL; mca_mpool_base_module_t* module = NULL; - opal_list_item_t* item; + mca_base_component_list_item_t *cli; mca_mpool_base_selected_module_t *sm; - for (item = opal_list_get_first(&ompi_mpool_base_framework.framework_components); - item != opal_list_get_end(&ompi_mpool_base_framework.framework_components); - item = opal_list_get_next(item)) { - mca_base_component_list_item_t *cli = - (mca_base_component_list_item_t *) item; - component = - (mca_mpool_base_component_t *) cli->cli_component; + OPAL_LIST_FOREACH(cli, &ompi_mpool_base_framework.framework_components, mca_base_component_list_item_t) { + component = (mca_mpool_base_component_t *) cli->cli_component; if(0 == strcmp(component->mpool_version.mca_component_name, name)) { + module = component->mpool_init(resources); break; } } - - if (opal_list_get_end(&ompi_mpool_base_framework.framework_components) == item) { - return NULL; - } - module = component->mpool_init(resources); if ( NULL == module ) { return NULL; } @@ -107,9 +98,9 @@ mca_mpool_base_module_t* mca_mpool_base_module_create( leave_pinned variables may have been set by a user MCA param or elsewhere in the code base). Yes, we could have coded this more succinctly, but this is more clear. Do not - check memory hooks if the mpool explicity asked us not to. */ + check memory hooks if the mpool explicity asked us not to. */ if ((ompi_mpi_leave_pinned > 0 || ompi_mpi_leave_pinned_pipeline) && - !(module->flags & MCA_MPOOL_FLAGS_NO_HOOKS)) { + !(module->flags & MCA_MPOOL_FLAGS_NO_HOOKS)) { use_mem_hooks = 1; } @@ -136,13 +127,9 @@ mca_mpool_base_module_t* mca_mpool_base_module_create( mca_mpool_base_module_t* mca_mpool_base_module_lookup(const char* name) { - opal_list_item_t* item; - - for (item = opal_list_get_first(&mca_mpool_base_modules); - item != opal_list_get_end(&mca_mpool_base_modules); - item = opal_list_get_next(item)) { - mca_mpool_base_selected_module_t *mli = - (mca_mpool_base_selected_module_t *) item; + mca_mpool_base_selected_module_t *mli; + + OPAL_LIST_FOREACH(mli, &mca_mpool_base_modules, mca_mpool_base_selected_module_t) { if(0 == strcmp(mli->mpool_component->mpool_version.mca_component_name, name)) { return mli->mpool_module; @@ -155,15 +142,11 @@ mca_mpool_base_module_t* mca_mpool_base_module_lookup(const char* name) int mca_mpool_base_module_destroy(mca_mpool_base_module_t *module) { - opal_list_item_t* item; - mca_mpool_base_selected_module_t *sm; + mca_mpool_base_selected_module_t *sm, *next; - for (item = opal_list_get_first(&mca_mpool_base_modules); - item != opal_list_get_end(&mca_mpool_base_modules); - item = opal_list_get_next(item)) { - sm = (mca_mpool_base_selected_module_t *) item; + OPAL_LIST_FOREACH_SAFE(sm, next, &mca_mpool_base_modules, mca_mpool_base_selected_module_t) { if (module == sm->mpool_module) { - opal_list_remove_item(&mca_mpool_base_modules,item); + opal_list_remove_item(&mca_mpool_base_modules, (opal_list_item_t*)sm); if (NULL != sm->mpool_module->mpool_finalize) { sm->mpool_module->mpool_finalize(sm->mpool_module); } diff --git a/ompi/mca/rcache/base/rcache_base_create.c b/ompi/mca/rcache/base/rcache_base_create.c index f87474dc21..a706a15d6c 100644 --- a/ompi/mca/rcache/base/rcache_base_create.c +++ b/ompi/mca/rcache/base/rcache_base_create.c @@ -30,34 +30,28 @@ mca_rcache_base_module_t* mca_rcache_base_module_create(const char* name) { - - mca_rcache_base_component_t* component = NULL; - mca_rcache_base_module_t* module = NULL; - opal_list_item_t* item; + mca_base_component_list_item_t* cli; + mca_rcache_base_component_t* component = NULL; + mca_rcache_base_module_t* module = NULL; mca_rcache_base_selected_module_t *sm; bool found = false; - for (item = opal_list_get_first(&ompi_rcache_base_framework.framework_components); - item != opal_list_get_end(&ompi_rcache_base_framework.framework_components); - item = opal_list_get_next(item)) { - mca_base_component_list_item_t *cli = - (mca_base_component_list_item_t *) item; - component = - (mca_rcache_base_component_t *) cli->cli_component; + OPAL_LIST_FOREACH(cli, &ompi_rcache_base_framework.framework_components, mca_base_component_list_item_t) { + component = (mca_rcache_base_component_t *) cli->cli_component; if(0 == strcmp(component->rcache_version.mca_component_name, name)) { found = true; break; } } - + if (!found) { return NULL; } module = component->rcache_init(); - sm = OBJ_NEW(mca_rcache_base_selected_module_t); - sm->rcache_component = component; - sm->rcache_module = module; - opal_list_append(&mca_rcache_base_modules, (opal_list_item_t*) sm); - return module; + sm = OBJ_NEW(mca_rcache_base_selected_module_t); + sm->rcache_component = component; + sm->rcache_module = module; + opal_list_append(&mca_rcache_base_modules, (opal_list_item_t*) sm); + return module; } diff --git a/opal/mca/base/mca_base_components_select.c b/opal/mca/base/mca_base_components_select.c index 9f640fccf8..2ec5af3366 100644 --- a/opal/mca/base/mca_base_components_select.c +++ b/opal/mca/base/mca_base_components_select.c @@ -35,7 +35,6 @@ int mca_base_select(const char *type_name, int output_id, mca_base_component_list_item_t *cli = NULL; mca_base_component_t *component = NULL; mca_base_module_t *module = NULL; - opal_list_item_t *item = NULL; int priority = 0, best_priority = INT32_MIN; *best_module = NULL; @@ -49,10 +48,7 @@ int mca_base_select(const char *type_name, int output_id, * Traverse the list of available components. * For each call their 'query' functions to determine relative priority. */ - for (item = opal_list_get_first(components_available); - item != opal_list_get_end(components_available); - item = opal_list_get_next(item) ) { - cli = (mca_base_component_list_item_t *) item; + OPAL_LIST_FOREACH(cli, components_available, mca_base_component_list_item_t) { component = (mca_base_component_t *) cli->cli_component; /* @@ -118,7 +114,7 @@ int mca_base_select(const char *type_name, int output_id, opal_output_verbose(5, output_id, "mca:base:select:(%5s) Selected component [%s]", type_name, (*best_component)->mca_component_name); - + /* * Close the non-selected components */ diff --git a/orte/mca/rmaps/base/rmaps_base_select.c b/orte/mca/rmaps/base/rmaps_base_select.c index d6fc263c28..71685b17d3 100644 --- a/orte/mca/rmaps/base/rmaps_base_select.c +++ b/orte/mca/rmaps/base/rmaps_base_select.c @@ -34,7 +34,6 @@ static bool selected = false; */ int orte_rmaps_base_select(void) { - opal_list_item_t *item, *itm2; mca_base_component_list_item_t *cli = NULL; mca_base_component_t *component = NULL; mca_base_module_t *module = NULL; @@ -48,12 +47,9 @@ int orte_rmaps_base_select(void) return ORTE_SUCCESS; } selected = true; - + /* Query all available components and ask if they have a module */ - for (item = opal_list_get_first(&orte_rmaps_base_framework.framework_components); - opal_list_get_end(&orte_rmaps_base_framework.framework_components) != item; - item = opal_list_get_next(item)) { - cli = (mca_base_component_list_item_t *) item; + OPAL_LIST_FOREACH(cli, &orte_rmaps_base_framework.framework_components, mca_base_component_list_item_t) { component = (mca_base_component_t *) cli->cli_component; opal_output_verbose(5, orte_rmaps_base_framework.framework_output, @@ -91,13 +87,10 @@ int orte_rmaps_base_select(void) /* maintain priority order */ inserted = false; - for (itm2 = opal_list_get_first(&orte_rmaps_base.selected_modules); - itm2 != opal_list_get_end(&orte_rmaps_base.selected_modules); - itm2 = opal_list_get_next(itm2)) { - mod = (orte_rmaps_base_selected_module_t*)itm2; + OPAL_LIST_FOREACH(mod, &orte_rmaps_base.selected_modules, orte_rmaps_base_selected_module_t) { if (priority > mod->pri) { opal_list_insert_pos(&orte_rmaps_base.selected_modules, - itm2, &newmodule->super); + (opal_list_item_t*)mod, &newmodule->super); inserted = true; break; } @@ -111,10 +104,7 @@ int orte_rmaps_base_select(void) if (4 < opal_output_get_verbosity(orte_rmaps_base_framework.framework_output)) { opal_output(0, "%s: Final mapper priorities", ORTE_NAME_PRINT(ORTE_PROC_MY_NAME)); /* show the prioritized list */ - for (itm2 = opal_list_get_first(&orte_rmaps_base.selected_modules); - itm2 != opal_list_get_end(&orte_rmaps_base.selected_modules); - itm2 = opal_list_get_next(itm2)) { - mod = (orte_rmaps_base_selected_module_t*)itm2; + OPAL_LIST_FOREACH(mod, &orte_rmaps_base.selected_modules, orte_rmaps_base_selected_module_t) { opal_output(0, "\tMapper: %s Priority: %d", mod->component->mca_component_name, mod->pri); } } diff --git a/orte/mca/rml/base/rml_base_frame.c b/orte/mca/rml/base/rml_base_frame.c index 8759180152..a4c8f3ac15 100644 --- a/orte/mca/rml/base/rml_base_frame.c +++ b/orte/mca/rml/base/rml_base_frame.c @@ -91,7 +91,8 @@ MCA_BASE_FRAMEWORK_DECLARE(orte, rml, "ORTE Run-Time Messaging Layer", int orte_rml_base_select(void) { - opal_list_item_t *item; + opal_list_item_t *item, *next; + mca_base_component_list_item_t *cli; int selected_priority = -1; orte_rml_component_t *selected_component = NULL; @@ -104,14 +105,9 @@ int orte_rml_base_select(void) return ORTE_SUCCESS; } selected = true; - - for (item = opal_list_get_first(&orte_rml_base_framework.framework_components); - item != opal_list_get_end(&orte_rml_base_framework.framework_components) ; - item = opal_list_get_next(item)) { - mca_base_component_list_item_t *cli; + + OPAL_LIST_FOREACH(cli, &orte_rml_base_framework.framework_components, mca_base_component_list_item_t ) { orte_rml_component_t* component; - - cli = (mca_base_component_list_item_t *) item; component = (orte_rml_component_t *) cli->cli_component; opal_output_verbose(10, orte_rml_base_framework.framework_output, @@ -159,31 +155,21 @@ int orte_rml_base_select(void) /* * Unload all components that were not selected */ - item = opal_list_get_first(&orte_rml_base_framework.framework_components); - while (item != opal_list_get_end(&orte_rml_base_framework.framework_components)) { - opal_list_item_t* next = opal_list_get_next(item); - orte_rml_component_t* component; - mca_base_component_list_item_t *cli; - - cli = (mca_base_component_list_item_t *) item; - component = (orte_rml_component_t *) cli->cli_component; + OPAL_LIST_FOREACH_SAFE(item, next, &orte_rml_base_framework.framework_components, opal_list_item_t) { + mca_base_component_list_item_t *cli = (mca_base_component_list_item_t *) item; + orte_rml_component_t* component = (orte_rml_component_t *) cli->cli_component; /* Keep it if it is the wrapper component */ - if (NULL != wrapper_component && - component == wrapper_component) { - item = next; + if ((component == wrapper_component) || (component == selected_component)) { continue; } /* Not the selected component */ - if (component != selected_component) { - opal_output_verbose(10, orte_rml_base_framework.framework_output, - "orte_rml_base_select: module %s unloaded", - component->rml_version.mca_component_name); - - mca_base_component_repository_release((mca_base_component_t *) component); - OBJ_RELEASE(item); - } - item = next; + opal_output_verbose(10, orte_rml_base_framework.framework_output, + "orte_rml_base_select: module %s unloaded", + component->rml_version.mca_component_name); + opal_list_remove_item(&orte_rml_base_framework.framework_components, item); + mca_base_component_repository_release((mca_base_component_t *) component); + OBJ_RELEASE(item); } /* setup reference to selected module */ diff --git a/orte/mca/sensor/base/sensor_base_select.c b/orte/mca/sensor/base/sensor_base_select.c index 79e6ae8422..56f711e33e 100644 --- a/orte/mca/sensor/base/sensor_base_select.c +++ b/orte/mca/sensor/base/sensor_base_select.c @@ -44,7 +44,6 @@ int orte_sensor_base_select(void) mca_base_component_t *component = NULL; mca_base_module_t *module = NULL; orte_sensor_active_module_t *i_module; - opal_list_item_t *item; int priority = 0, i, j, low_i; opal_pointer_array_t tmp_array; bool none_found; @@ -57,21 +56,18 @@ int orte_sensor_base_select(void) selected = true; OBJ_CONSTRUCT(&tmp_array, opal_pointer_array_t); - + opal_output_verbose(10, orte_sensor_base_framework.framework_output, "sensor:base:select: Auto-selecting components"); - + /* * Traverse the list of available components. * For each call their 'query' functions to determine relative priority. */ none_found = true; - for (item = opal_list_get_first(&orte_sensor_base_framework.framework_components); - item != opal_list_get_end(&orte_sensor_base_framework.framework_components); - item = opal_list_get_next(item) ) { - cli = (mca_base_component_list_item_t *) item; + OPAL_LIST_FOREACH(cli, &orte_sensor_base_framework.framework_components, mca_base_component_list_item_t) { component = (mca_base_component_t *) cli->cli_component; - + /* * If there is a query function then use it. */ @@ -81,16 +77,16 @@ int orte_sensor_base_select(void) component->mca_component_name ); continue; } - + /* * Query this component for the module and priority */ opal_output_verbose(5, orte_sensor_base_framework.framework_output, "sensor:base:select Querying component [%s]", component->mca_component_name); - + component->mca_query_component(&module, &priority); - + /* * If no module was returned or negative priority, then skip component */ @@ -100,7 +96,7 @@ int orte_sensor_base_select(void) component->mca_component_name ); continue; } - + /* * Append them to the temporary list, we will sort later */ @@ -111,16 +107,16 @@ int orte_sensor_base_select(void) tmp_module->component = component; tmp_module->module = (orte_sensor_base_module_t*)module; tmp_module->priority = priority; - + opal_pointer_array_add(&tmp_array, (void*)tmp_module); none_found = false; } - + if (none_found) { /* okay for no modules to be found */ return ORTE_SUCCESS; } - + /* ensure my_proc and my_node are available on the global arrays */ if (NULL == (jdata = orte_get_job_data_object(ORTE_PROC_MY_NAME->jobid))) { orte_sensor_base.my_proc = OBJ_NEW(orte_proc_t); @@ -148,10 +144,10 @@ int orte_sensor_base_select(void) if( NULL == tmp_module_sw ) { continue; } - + low_i = -1; priority = tmp_module_sw->priority; - + for(i = 0; i < tmp_array.size; ++i) { tmp_module = (orte_sensor_active_module_t*)opal_pointer_array_get_item(&tmp_array, i); if( NULL == tmp_module ) { @@ -162,7 +158,7 @@ int orte_sensor_base_select(void) priority = tmp_module->priority; } } - + if( low_i >= 0 ) { tmp_module = (orte_sensor_active_module_t*)opal_pointer_array_get_item(&tmp_array, low_i); opal_pointer_array_set_item(&tmp_array, low_i, NULL); @@ -177,7 +173,7 @@ int orte_sensor_base_select(void) opal_pointer_array_add(&orte_sensor_base.modules, tmp_module); } OBJ_DESTRUCT(&tmp_array); - + /* * Initialize each of the modules in priority order from * highest to lowest @@ -194,6 +190,6 @@ int orte_sensor_base_select(void) } } } - + return ORTE_SUCCESS; }