This source file includes following definitions.
- pmix_psensor_register
- pmix_psensor_base_close
- pmix_psensor_base_open
   1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 
  15 #include <src/include/pmix_config.h>
  16 
  17 #include <pmix_common.h>
  18 
  19 #include <pthread.h>
  20 #include PMIX_EVENT_HEADER
  21 
  22 #include "src/mca/mca.h"
  23 #include "src/mca/base/base.h"
  24 #include "src/class/pmix_list.h"
  25 #include "src/runtime/pmix_progress_threads.h"
  26 #include "src/include/types.h"
  27 
  28 #include "src/mca/psensor/base/base.h"
  29 
  30 
  31 
  32 
  33 
  34 
  35 
  36 #include "src/mca/psensor/base/static-components.h"
  37 
  38 
  39 
  40 
  41 pmix_psensor_base_module_t pmix_psensor = {
  42     pmix_psensor_base_start,
  43     pmix_psensor_base_stop
  44 };
  45 pmix_psensor_base_t pmix_psensor_base = {{{0}}};
  46 
  47 static bool use_separate_thread = false;
  48 
  49 static int pmix_psensor_register(pmix_mca_base_register_flag_t flags)
  50 {
  51     (void) pmix_mca_base_var_register("pmix", "psensor", "base", "use_separate_thread",
  52                                       "Use a separate thread for monitoring local procs",
  53                                       PMIX_MCA_BASE_VAR_TYPE_BOOL, NULL, 0, 0,
  54                                       PMIX_INFO_LVL_9,
  55                                       PMIX_MCA_BASE_VAR_SCOPE_READONLY,
  56                                       &use_separate_thread);
  57     return PMIX_SUCCESS;
  58 }
  59 
  60 
  61 static int pmix_psensor_base_close(void)
  62 {
  63     PMIX_LIST_DESTRUCT(&pmix_psensor_base.actives);
  64 
  65     if (use_separate_thread && NULL != pmix_psensor_base.evbase) {
  66         (void)pmix_progress_thread_stop("PSENSOR");
  67     }
  68 
  69     
  70     return pmix_mca_base_framework_components_close(&pmix_psensor_base_framework, NULL);
  71 }
  72 
  73 
  74 
  75 
  76 
  77 static int pmix_psensor_base_open(pmix_mca_base_open_flag_t flags)
  78 {
  79     
  80     PMIX_CONSTRUCT(&pmix_psensor_base.actives, pmix_list_t);
  81 
  82     if (use_separate_thread) {
  83         
  84         if (NULL == (pmix_psensor_base.evbase = pmix_progress_thread_init("PSENSOR"))) {
  85             return PMIX_ERROR;
  86         }
  87 
  88     } else {
  89         pmix_psensor_base.evbase = pmix_globals.evbase;
  90     }
  91 
  92     
  93     return pmix_mca_base_framework_components_open(&pmix_psensor_base_framework, flags);
  94 }
  95 
  96 PMIX_MCA_BASE_FRAMEWORK_DECLARE(pmix, psensor, "PMIx Monitoring Sensors",
  97                                 pmix_psensor_register,
  98                                 pmix_psensor_base_open, pmix_psensor_base_close,
  99                                 mca_psensor_base_static_components, 0);
 100 
 101 PMIX_CLASS_INSTANCE(pmix_psensor_active_module_t,
 102                     pmix_list_item_t,
 103                     NULL, NULL);