diff --git a/src/mca/iof/iof.h b/src/mca/iof/iof.h index 97a014a708..31485b4c02 100644 --- a/src/mca/iof/iof.h +++ b/src/mca/iof/iof.h @@ -154,6 +154,13 @@ typedef int (*mca_iof_base_unsubscribe_fn_t)( mca_iof_base_tag_t src_tag ); + +/* + * Flush all output and block until output is delivered. + */ + +typedef int (*mca_iof_base_flush_fn_t)(void); + /** * IOF module. */ @@ -165,6 +172,7 @@ struct mca_iof_base_module_1_0_0_t { mca_iof_base_pull_fn_t iof_pull; mca_iof_base_subscribe_fn_t iof_subscribe; mca_iof_base_unsubscribe_fn_t iof_unsubscribe; + mca_iof_base_flush_fn_t iof_flush; }; typedef struct mca_iof_base_module_1_0_0_t mca_iof_base_module_1_0_0_t; diff --git a/src/mca/iof/proxy/iof_proxy.c b/src/mca/iof/proxy/iof_proxy.c index 3647ef8815..c0f8793cb0 100644 --- a/src/mca/iof/proxy/iof_proxy.c +++ b/src/mca/iof/proxy/iof_proxy.c @@ -21,6 +21,7 @@ #include "mca/iof/iof.h" #include "mca/oob/oob.h" #include "mca/iof/iof.h" +#include "mca/iof/base/base.h" #include "mca/iof/base/iof_base_endpoint.h" #include "iof_proxy.h" #include "iof_proxy_svc.h" @@ -32,7 +33,8 @@ mca_iof_base_module_t mca_iof_proxy_module = { mca_iof_proxy_push, mca_iof_proxy_pull, mca_iof_proxy_subscribe, - mca_iof_proxy_unsubscribe + mca_iof_proxy_unsubscribe, + mca_iof_base_flush }; diff --git a/src/mca/iof/svc/iof_svc.c b/src/mca/iof/svc/iof_svc.c index 2fcad067c5..8c7f86b505 100644 --- a/src/mca/iof/svc/iof_svc.c +++ b/src/mca/iof/svc/iof_svc.c @@ -19,6 +19,7 @@ #include "include/constants.h" #include "util/output.h" #include "mca/oob/base/base.h" +#include "mca/iof/base/base.h" #include "mca/iof/base/iof_base_endpoint.h" #include "iof_svc.h" #include "iof_svc_publish.h" @@ -31,7 +32,8 @@ mca_iof_base_module_t mca_iof_svc_module = { mca_iof_svc_push, mca_iof_svc_pull, mca_iof_svc_subscribe, - mca_iof_svc_unsubscribe + mca_iof_svc_unsubscribe, + mca_iof_base_flush }; diff --git a/src/mca/iof/svc/iof_svc_component.c b/src/mca/iof/svc/iof_svc_component.c index 18ecf0c364..4641ffc8b6 100644 --- a/src/mca/iof/svc/iof_svc_component.c +++ b/src/mca/iof/svc/iof_svc_component.c @@ -108,6 +108,7 @@ static int mca_iof_svc_close(void) } OMPI_THREAD_UNLOCK(&mca_iof_svc_component.svc_lock); mca_oob_recv_cancel(MCA_OOB_NAME_ANY, MCA_OOB_TAG_IOF_SVC); + return OMPI_SUCCESS; } diff --git a/src/mpi/runtime/ompi_mpi_init.c b/src/mpi/runtime/ompi_mpi_init.c index 426e770bad..00cda80c7b 100644 --- a/src/mpi/runtime/ompi_mpi_init.c +++ b/src/mpi/runtime/ompi_mpi_init.c @@ -349,7 +349,7 @@ int ompi_mpi_init(int argc, char **argv, int requested, int *provided) goto error; } -#if OMPI_HAVE_THREADS +#if 0 /* setup I/O forwarding */ if (OMPI_SUCCESS != (ret = ompi_mpi_init_io())) { error = "ompi_rte_init_io failed"; diff --git a/src/runtime/ompi_rte_finalize.c b/src/runtime/ompi_rte_finalize.c index 133ef1ead0..a1ec35b9a2 100644 --- a/src/runtime/ompi_rte_finalize.c +++ b/src/runtime/ompi_rte_finalize.c @@ -46,7 +46,9 @@ int ompi_rte_finalize(void) ompi_rte_wait_finalize(); ompi_rte_internal_fini_spawn(); +#if 0 mca_iof_base_close(); +#endif mca_pcm_base_close(); mca_llm_base_close(); mca_pcmclient_base_close(); diff --git a/src/runtime/ompi_rte_init.c b/src/runtime/ompi_rte_init.c index 0ed87dd155..c9dbbf1a85 100644 --- a/src/runtime/ompi_rte_init.c +++ b/src/runtime/ompi_rte_init.c @@ -198,6 +198,7 @@ int ompi_rte_init(ompi_cmd_line_t *cmd_line, bool *allow_multi_user_threads, boo return ret; } +#if 0 /* * Open I/O forwarding components. */ @@ -206,7 +207,7 @@ int ompi_rte_init(ompi_cmd_line_t *cmd_line, bool *allow_multi_user_threads, boo printf("show_help: ompi_rte_init failed in mca_iof_base_open\n"); return ret; } - +#endif printname("component open"); /* @@ -409,6 +410,7 @@ int ompi_rte_init(ompi_cmd_line_t *cmd_line, bool *allow_multi_user_threads, boo exit(-1); } +#if 0 /* setup I/O forwarding */ if (OMPI_SUCCESS != (ret = mca_iof_base_select(&user_threads, &hidden_threads))) { /* JMS show_help */ @@ -417,6 +419,7 @@ int ompi_rte_init(ompi_cmd_line_t *cmd_line, bool *allow_multi_user_threads, boo } *allow_multi_user_threads &= user_threads; *have_hidden_threads |= hidden_threads; +#endif /* * All done