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);