This source file includes following definitions.
- pmix_rte_finalize
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 #include <src/include/pmix_config.h>
28
29 #include "src/class/pmix_object.h"
30 #include "src/client/pmix_client_ops.h"
31 #include "src/common/pmix_attributes.h"
32 #include "src/util/output.h"
33 #include "src/util/keyval_parse.h"
34 #include "src/util/show_help.h"
35 #include "src/mca/base/base.h"
36 #include "src/mca/base/pmix_mca_base_var.h"
37 #include "src/mca/bfrops/base/base.h"
38 #include "src/mca/pcompress/base/base.h"
39 #include "src/mca/gds/base/base.h"
40 #include "src/mca/pif/base/base.h"
41 #include "src/mca/pinstalldirs/base/base.h"
42 #include "src/mca/plog/base/base.h"
43 #include "src/mca/pnet/base/base.h"
44 #include "src/mca/preg/base/base.h"
45 #include "src/mca/psec/base/base.h"
46 #include "src/mca/ptl/base/base.h"
47 #include PMIX_EVENT_HEADER
48
49 #include "src/runtime/pmix_rte.h"
50 #include "src/runtime/pmix_progress_threads.h"
51
52 extern int pmix_initialized;
53 extern bool pmix_init_called;
54
55 void pmix_rte_finalize(void)
56 {
57 int i;
58 pmix_notify_caddy_t *cd;
59
60 if( --pmix_initialized != 0 ) {
61 if( pmix_initialized < 0 ) {
62 fprintf(stderr, "PMIx Finalize called too many times\n");
63 return;
64 }
65 return;
66 }
67
68
69 pmix_release_registered_attrs();
70
71
72 (void)pmix_mca_base_framework_close(&pmix_plog_base_framework);
73
74
75 (void)pmix_mca_base_framework_close(&pmix_preg_base_framework);
76
77
78 (void)pmix_mca_base_framework_close(&pmix_ptl_base_framework);
79
80
81 (void)pmix_mca_base_framework_close(&pmix_psec_base_framework);
82
83
84 (void)pmix_mca_base_framework_close(&pmix_bfrops_base_framework);
85
86
87 (void)pmix_mca_base_framework_close(&pmix_pcompress_base_framework);
88
89
90 (void)pmix_mca_base_framework_close(&pmix_gds_base_framework);
91
92
93
94 pmix_deregister_params();
95 pmix_mca_base_var_finalize();
96
97
98 pmix_util_keyval_parse_finalize();
99
100 (void)pmix_mca_base_framework_close(&pmix_pinstalldirs_base_framework);
101 (void)pmix_mca_base_framework_close(&pmix_pif_base_framework);
102 (void)pmix_mca_base_close();
103
104
105 pmix_show_help_finalize();
106
107
108
109
110
111 pmix_output_finalize();
112
113
114 PMIX_RELEASE(pmix_globals.mypeer);
115 PMIX_DESTRUCT(&pmix_globals.events);
116 PMIX_LIST_DESTRUCT(&pmix_globals.cached_events);
117
118 for (i=0; i < pmix_globals.max_events; i++) {
119 pmix_hotel_checkout_and_return_occupant(&pmix_globals.notifications, i, (void**)&cd);
120 if (NULL != cd) {
121 PMIX_RELEASE(cd);
122 }
123 }
124 PMIX_DESTRUCT(&pmix_globals.notifications);
125 PMIX_LIST_DESTRUCT(&pmix_globals.iof_requests);
126 PMIX_LIST_DESTRUCT(&pmix_globals.stdin_targets);
127
128
129 if (!pmix_globals.external_evbase) {
130 (void)pmix_progress_thread_stop(NULL);
131 }
132
133 }