From f30321807060fb9aad329f66fe89d5d3425bc995 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Fri, 1 Jun 2018 14:23:16 +0200 Subject: [PATCH] Use std::function for s_smx_process_exit_fun_t. --- src/simix/ActorImpl.cpp | 4 ++-- src/simix/ActorImpl.hpp | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/simix/ActorImpl.cpp b/src/simix/ActorImpl.cpp index 96aac00178..736e4264bd 100644 --- a/src/simix/ActorImpl.cpp +++ b/src/simix/ActorImpl.cpp @@ -758,14 +758,14 @@ void SIMIX_process_on_exit_runall(smx_actor_t process) { while (not process->on_exit.empty()) { s_smx_process_exit_fun_t exit_fun = process->on_exit.back(); process->on_exit.pop_back(); - (exit_fun.fun)((void*)exit_status, exit_fun.arg); + (exit_fun.fun)(exit_status, exit_fun.arg); } } void SIMIX_process_on_exit(smx_actor_t process, int_f_pvoid_pvoid_t fun, void *data) { xbt_assert(process, "current process not found: are you in maestro context ?"); - s_smx_process_exit_fun_t exit_fun = {fun, data}; + s_smx_process_exit_fun_t exit_fun = {[fun](int a, void* b) { fun((void*)(intptr_t)a, b); }, data}; process->on_exit.push_back(exit_fun); } diff --git a/src/simix/ActorImpl.hpp b/src/simix/ActorImpl.hpp index 15bfeb04cb..af2a7f3868 100644 --- a/src/simix/ActorImpl.hpp +++ b/src/simix/ActorImpl.hpp @@ -10,11 +10,12 @@ #include "src/simix/popping_private.hpp" #include "src/surf/PropertyHolder.hpp" #include +#include #include #include struct s_smx_process_exit_fun_t { - int_f_pvoid_pvoid_t fun; + std::function fun; void *arg; }; -- 2.20.1