@@ -101,6 +101,11 @@ ompi_mtl_ofi_component_close(void)
101101 return OMPI_SUCCESS ;
102102}
103103
104+ int
105+ ompi_mtl_ofi_progress_no_inline (void )
106+ {
107+ ompi_mtl_ofi_progress ();
108+ }
104109
105110static mca_mtl_base_module_t *
106111ompi_mtl_ofi_component_init (bool enable_progress_threads ,
@@ -338,7 +343,7 @@ ompi_mtl_ofi_component_init(bool enable_progress_threads,
338343 /**
339344 * Activate progress callback.
340345 */
341- ret = opal_progress_register (ompi_mtl_ofi_progress );
346+ ret = opal_progress_register (ompi_mtl_ofi_progress_no_inline );
342347 if (OMPI_SUCCESS != ret ) {
343348 opal_output_verbose (1 , ompi_mtl_base_framework .framework_output ,
344349 "%s:%d: opal_progress_register failed: %d\n" ,
@@ -373,5 +378,42 @@ ompi_mtl_ofi_component_init(bool enable_progress_threads,
373378 return NULL ;
374379}
375380
381+ int
382+ ompi_mtl_ofi_finalize (struct mca_mtl_base_module_t * mtl )
383+ {
384+ opal_progress_unregister (ompi_mtl_ofi_progress_no_inline );
385+
386+ /**
387+ * * Close all the OFI objects
388+ * */
389+ if (fi_close ((fid_t )ompi_mtl_ofi .ep )) {
390+ opal_output (ompi_mtl_base_framework .framework_output ,
391+ "fi_close failed: %s" , strerror (errno ));
392+ abort ();
393+ }
394+ if (fi_close ((fid_t )ompi_mtl_ofi .cq )) {
395+ opal_output (ompi_mtl_base_framework .framework_output ,
396+ "fi_close failed: %s" , strerror (errno ));
397+ abort ();
398+ }
399+ if (fi_close ((fid_t )ompi_mtl_ofi .av )) {
400+ opal_output (ompi_mtl_base_framework .framework_output ,
401+ "fi_close failed: %s" , strerror (errno ));
402+ abort ();
403+ }
404+ if (fi_close ((fid_t )ompi_mtl_ofi .domain )) {
405+ opal_output (ompi_mtl_base_framework .framework_output ,
406+ "fi_close failed: %s" , strerror (errno ));
407+ abort ();
408+ }
409+ if (fi_close ((fid_t )ompi_mtl_ofi .fabric )) {
410+ opal_output (ompi_mtl_base_framework .framework_output ,
411+ "fi_close failed: %s" , strerror (errno ));
412+ abort ();
413+ }
414+
415+ return OMPI_SUCCESS ;
416+ }
417+
376418
377419
0 commit comments