From 41c9a87bfa8a1c81215dca8963e1411cc960198c Mon Sep 17 00:00:00 2001 From: acdemiralp <demiralpali@gmail.com> Date: Wed, 6 May 2020 13:07:37 +0200 Subject: [PATCH] Progress. --- include/boost_mpi_extensions/mpi_detach.hpp | 26 +++++++++------------ 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/include/boost_mpi_extensions/mpi_detach.hpp b/include/boost_mpi_extensions/mpi_detach.hpp index b7118bb..ec99cf4 100644 --- a/include/boost_mpi_extensions/mpi_detach.hpp +++ b/include/boost_mpi_extensions/mpi_detach.hpp @@ -184,12 +184,8 @@ struct state inline std::optional<state> global_state; // Note: External-linkage optional used as a lazy-initialized stack variable. Must be reset prior to MPI_Finalize. } -typedef void MPI_Detach_callback (void*); -typedef void MPI_Detach_callback_status (void*, MPI_Status*); -typedef void MPI_Detach_callback_statuses(void*, std::int32_t, MPI_Status*); - // Note: If the test does not succeed immediately, takes the ownership of the request and invalidates it. -inline std::int32_t MPI_Detach ( MPI_Request* request , MPI_Detach_callback* callback, void* data) +inline std::int32_t MPI_Detach ( MPI_Request* request , std::function<void(void*)> callback, void* data) { if (!detail::global_state) detail::global_state.emplace(); @@ -208,8 +204,8 @@ inline std::int32_t MPI_Detach ( MPI_Request* requ return MPI_SUCCESS; } -// Note: If the test does not succeed immediately, takes the ownership of the request and invalidates it. -inline std::int32_t MPI_Detach_status ( MPI_Request* request , MPI_Detach_callback_status* callback, void* data) +// Note: If the test does not succeed immediately, takes the ownership of the request and invalidates it. +inline std::int32_t MPI_Detach_status ( MPI_Request* request , std::function<void(void*, MPI_Status*)> callback, void* data) { if (!detail::global_state) detail::global_state.emplace(); @@ -229,8 +225,8 @@ inline std::int32_t MPI_Detach_status ( MPI_Request* requ return MPI_SUCCESS; } -// Note: If the test does not succeed immediately, takes the ownership of the requests and invalidates them. -inline std::int32_t MPI_Detach_each (std::int32_t count, MPI_Request* requests, MPI_Detach_callback* callback, void** data) +// Note: If the test does not succeed immediately, takes the ownership of the requests and invalidates them. +inline std::int32_t MPI_Detach_each (std::int32_t count, MPI_Request* requests, std::function<void(void*)> callback, void** data) { if (!detail::global_state) detail::global_state.emplace(); @@ -252,8 +248,8 @@ inline std::int32_t MPI_Detach_each (std::int32_t count, MPI_Request* requ return MPI_SUCCESS; } -// Note: If the test does not succeed immediately, takes the ownership of the requests and invalidates them. -inline std::int32_t MPI_Detach_each_status(std::int32_t count, MPI_Request* requests, MPI_Detach_callback_status* callback, void** data) +// Note: If the test does not succeed immediately, takes the ownership of the requests and invalidates them. +inline std::int32_t MPI_Detach_each_status(std::int32_t count, MPI_Request* requests, std::function<void(void*, MPI_Status*)> callback, void** data) { if (!detail::global_state) detail::global_state.emplace(); @@ -276,8 +272,8 @@ inline std::int32_t MPI_Detach_each_status(std::int32_t count, MPI_Request* requ return MPI_SUCCESS; } -// Note: If the test does not succeed immediately, takes the ownership of the requests and invalidates them. -inline std::int32_t MPI_Detach_all (std::int32_t count, MPI_Request* requests, MPI_Detach_callback* callback, void* data) +// Note: If the test does not succeed immediately, takes the ownership of the requests and invalidates them. +inline std::int32_t MPI_Detach_all (std::int32_t count, MPI_Request* requests, std::function<void(void*)> callback, void* data) { if (!detail::global_state) detail::global_state.emplace(); @@ -297,8 +293,8 @@ inline std::int32_t MPI_Detach_all (std::int32_t count, MPI_Request* requ return MPI_SUCCESS; } -// Note: If the test does not succeed immediately, takes the ownership of the requests and invalidates them. -inline std::int32_t MPI_Detach_all_status (std::int32_t count, MPI_Request* requests, MPI_Detach_callback_statuses* callback, void* data) +// Note: If the test does not succeed immediately, takes the ownership of the requests and invalidates them. +inline std::int32_t MPI_Detach_all_status (std::int32_t count, MPI_Request* requests, std::function<void(void*, std::int32_t, MPI_Status*)> callback, void* data) { if (!detail::global_state) detail::global_state.emplace(); -- GitLab