⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mca_base_components_close.c

📁 MPI stands for the Message Passing Interface. Written by the MPI Forum (a large committee comprising
💻 C
字号:
/* * Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana *                         University Research and Technology *                         Corporation.  All rights reserved. * Copyright (c) 2004-2006 The University of Tennessee and The University *                         of Tennessee Research Foundation.  All rights *                         reserved. * Copyright (c) 2004-2006 High Performance Computing Center Stuttgart,  *                         University of Stuttgart.  All rights reserved. * Copyright (c) 2004-2006 The Regents of the University of California. *                         All rights reserved. * $COPYRIGHT$ *  * Additional copyrights may follow *  * $HEADER$ */#include "opal_config.h"#include "opal/class/opal_list.h"#include "opal/util/output.h"#include "opal/mca/mca.h"#include "opal/mca/base/base.h"#include "opal/mca/base/mca_base_component_repository.h"#include "opal/constants.h"int mca_base_components_close(int output_id,                               opal_list_t *components_available,                               const mca_base_component_t *skip){  opal_list_item_t *item;  mca_base_component_priority_list_item_t *pcli, *skipped_pcli = NULL;  const mca_base_component_t *component;  /* Close and unload all components in the available list, except the     "skip" item.  This is handy to close out all non-selected     components.  It's easier to simply remove the entire list and     then simply re-add the skip entry when done. */  for (item = opal_list_remove_first(components_available);       NULL != item;        item = opal_list_remove_first(components_available)) {    pcli = (mca_base_component_priority_list_item_t *) item;    component = pcli->super.cli_component;    if (component != skip) {      /* Close */      if (NULL != component->mca_close_component) {        component->mca_close_component();        opal_output_verbose(10, output_id,                             "mca: base: close: component %s closed",                           component->mca_component_name);      }      /* Unload */      opal_output_verbose(10, output_id,                           "mca: base: close: unloading component %s",                         component->mca_component_name);      mca_base_component_repository_release((mca_base_component_t *) component);      free(pcli);    } else {      skipped_pcli = pcli;    }  }  /* If we found it, re-add the skipped component to the available     list (see above comment) */  if (NULL != skipped_pcli) {    opal_list_append(components_available, (opal_list_item_t *) skipped_pcli);  }  /*   * If we are not the verbose output stream, and we shouldn't skip   * any components, close the output stream.  If there's a skip   * component, this is a 'choose one' framework and we're closing the   * unchoosen components, but will still be using the framework.   */  if (0 != output_id && NULL == skip) {      opal_output_close (output_id);  }  /* All done */  return OPAL_SUCCESS;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -