From: Arnaud Giersch Date: Tue, 19 Feb 2019 20:15:41 +0000 (+0100) Subject: Specialize parameter for simcall execution_test. X-Git-Tag: v3_22~292 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/583a10d8a63c6c037d2116f15dbbd3c2b035806e?ds=sidebyside Specialize parameter for simcall execution_test. --- diff --git a/include/simgrid/simix.h b/include/simgrid/simix.h index 7fcf1301c5..f3eed0e4c5 100644 --- a/include/simgrid/simix.h +++ b/include/simgrid/simix.h @@ -176,9 +176,9 @@ XBT_ATTRIB_DEPRECATED_v325("Please use CommImpl::finish") XBT_PUBLIC void SIMIX_ XBT_PUBLIC smx_activity_t simcall_execution_parallel_start(const std::string& name, int host_nb, const sg_host_t* host_list, const double* flops_amount, const double* bytes_amount, double rate, double timeout); +XBT_PUBLIC e_smx_state_t simcall_execution_test(const smx_activity_t& execution); #endif XBT_PUBLIC e_smx_state_t simcall_execution_wait(smx_activity_t execution); -XBT_PUBLIC e_smx_state_t simcall_execution_test(smx_activity_t execution); /**************************** Process simcalls ********************************/ SG_BEGIN_DECL() diff --git a/src/kernel/activity/ExecImpl.cpp b/src/kernel/activity/ExecImpl.cpp index 0969448e0c..beeed7efee 100644 --- a/src/kernel/activity/ExecImpl.cpp +++ b/src/kernel/activity/ExecImpl.cpp @@ -35,12 +35,12 @@ void simcall_HANDLER_execution_wait(smx_simcall_t simcall, smx_activity_t synchr boost::static_pointer_cast(synchro)->finish(); } -void simcall_HANDLER_execution_test(smx_simcall_t simcall, smx_activity_t synchro) +void simcall_HANDLER_execution_test(smx_simcall_t simcall, simgrid::kernel::activity::ExecImpl* synchro) { int res = (synchro->state_ != SIMIX_WAITING && synchro->state_ != SIMIX_RUNNING); if (res) { synchro->simcalls_.push_back(simcall); - boost::static_pointer_cast(synchro)->finish(); + synchro->finish(); } else { SIMIX_simcall_answer(simcall); } diff --git a/src/simix/libsmx.cpp b/src/simix/libsmx.cpp index 8a71f117c5..3137ed381a 100644 --- a/src/simix/libsmx.cpp +++ b/src/simix/libsmx.cpp @@ -76,9 +76,9 @@ e_smx_state_t simcall_execution_wait(smx_activity_t execution) return (e_smx_state_t) simcall_BODY_execution_wait(execution); } -e_smx_state_t simcall_execution_test(smx_activity_t execution) +e_smx_state_t simcall_execution_test(const smx_activity_t& execution) { - return (e_smx_state_t)simcall_BODY_execution_test(execution); + return (e_smx_state_t)simcall_BODY_execution_test(static_cast(execution.get())); } void simcall_process_join(smx_actor_t process, double timeout) diff --git a/src/simix/popping_accessors.hpp b/src/simix/popping_accessors.hpp index 59f4308e74..fb1720e299 100644 --- a/src/simix/popping_accessors.hpp +++ b/src/simix/popping_accessors.hpp @@ -115,20 +115,18 @@ static inline void simcall_execution_wait__set__result(smx_simcall_t simcall, in simgrid::simix::marshal(simcall->result, result); } -static inline boost::intrusive_ptr -simcall_execution_test__get__execution(smx_simcall_t simcall) +static inline simgrid::kernel::activity::ExecImpl* simcall_execution_test__get__execution(smx_simcall_t simcall) { - return simgrid::simix::unmarshal>(simcall->args[0]); + return simgrid::simix::unmarshal(simcall->args[0]); } -static inline simgrid::kernel::activity::ActivityImpl* simcall_execution_test__getraw__execution(smx_simcall_t simcall) +static inline simgrid::kernel::activity::ExecImpl* simcall_execution_test__getraw__execution(smx_simcall_t simcall) { - return simgrid::simix::unmarshal_raw(simcall->args[0]); + return simgrid::simix::unmarshal_raw(simcall->args[0]); } -static inline void -simcall_execution_test__set__execution(smx_simcall_t simcall, - boost::intrusive_ptr arg) +static inline void simcall_execution_test__set__execution(smx_simcall_t simcall, + simgrid::kernel::activity::ExecImpl* arg) { - simgrid::simix::marshal>(simcall->args[0], arg); + simgrid::simix::marshal(simcall->args[0], arg); } static inline int simcall_execution_test__get__result(smx_simcall_t simcall) { @@ -1034,9 +1032,7 @@ XBT_PRIVATE void simcall_HANDLER_process_suspend(smx_simcall_t simcall, smx_acto XBT_PRIVATE void simcall_HANDLER_process_join(smx_simcall_t simcall, smx_actor_t process, double timeout); XBT_PRIVATE void simcall_HANDLER_process_sleep(smx_simcall_t simcall, double duration); XBT_PRIVATE void simcall_HANDLER_execution_wait(smx_simcall_t simcall, boost::intrusive_ptr execution); -XBT_PRIVATE void -simcall_HANDLER_execution_test(smx_simcall_t simcall, - boost::intrusive_ptr execution); +XBT_PRIVATE void simcall_HANDLER_execution_test(smx_simcall_t simcall, simgrid::kernel::activity::ExecImpl* execution); XBT_PRIVATE void simcall_HANDLER_comm_send(smx_simcall_t simcall, smx_actor_t sender, smx_mailbox_t mbox, double task_size, double rate, void* src_buff, size_t src_buff_size, simix_match_func_t match_fun, simix_copy_data_func_t copy_data_fun, void* data, double timeout); XBT_PRIVATE boost::intrusive_ptr simcall_HANDLER_comm_isend(smx_simcall_t simcall, smx_actor_t sender, smx_mailbox_t mbox, double task_size, double rate, void* src_buff, size_t src_buff_size, simix_match_func_t match_fun, simix_clean_func_t clean_fun, simix_copy_data_func_t copy_data_fun, void* data, int detached); XBT_PRIVATE void simcall_HANDLER_comm_recv(smx_simcall_t simcall, smx_actor_t receiver, smx_mailbox_t mbox, void* dst_buff, size_t* dst_buff_size, simix_match_func_t match_fun, simix_copy_data_func_t copy_data_fun, void* data, double timeout, double rate); diff --git a/src/simix/popping_bodies.cpp b/src/simix/popping_bodies.cpp index aab2039ef9..05a9a5d466 100644 --- a/src/simix/popping_bodies.cpp +++ b/src/simix/popping_bodies.cpp @@ -64,11 +64,11 @@ inline static int simcall_BODY_execution_wait(boost::intrusive_ptr>(SIMCALL_EXECUTION_WAIT, execution); } -inline static int simcall_BODY_execution_test(boost::intrusive_ptr execution) +inline static int simcall_BODY_execution_test(simgrid::kernel::activity::ExecImpl* execution) { if (0) /* Go to that function to follow the code flow through the simcall barrier */ simcall_HANDLER_execution_test(&SIMIX_process_self()->simcall, execution); - return simcall>(SIMCALL_EXECUTION_TEST, execution); + return simcall(SIMCALL_EXECUTION_TEST, execution); } inline static void simcall_BODY_comm_send(smx_actor_t sender, smx_mailbox_t mbox, double task_size, double rate, void* src_buff, size_t src_buff_size, simix_match_func_t match_fun, simix_copy_data_func_t copy_data_fun, void* data, double timeout) diff --git a/src/simix/popping_generated.cpp b/src/simix/popping_generated.cpp index 490d122822..9a5ff7f0cf 100644 --- a/src/simix/popping_generated.cpp +++ b/src/simix/popping_generated.cpp @@ -81,9 +81,8 @@ case SIMCALL_EXECUTION_WAIT: break; case SIMCALL_EXECUTION_TEST: - simcall_HANDLER_execution_test( - simcall, - simgrid::simix::unmarshal>(simcall->args[0])); + simcall_HANDLER_execution_test(simcall, + simgrid::simix::unmarshal(simcall->args[0])); break; case SIMCALL_COMM_SEND: diff --git a/src/simix/simcalls.in b/src/simix/simcalls.in index c9ea0e0dfe..4b71e98a00 100644 --- a/src/simix/simcalls.in +++ b/src/simix/simcalls.in @@ -40,7 +40,7 @@ int process_join(smx_actor_t process, double timeout) [[block]]; int process_sleep(double duration) [[block]]; int execution_wait(boost::intrusive_ptr execution) [[block]]; -int execution_test(boost::intrusive_ptr execution) [[block]]; +int execution_test(simgrid::kernel::activity::ExecImpl* execution) [[block]]; void comm_send(smx_actor_t sender, smx_mailbox_t mbox, double task_size, double rate, void* src_buff, size_t src_buff_size, simix_match_func_t match_fun, simix_copy_data_func_t copy_data_fun, void* data, double timeout) [[block]]; boost::intrusive_ptr comm_isend(smx_actor_t sender, smx_mailbox_t mbox, double task_size, double rate, void* src_buff, size_t src_buff_size, simix_match_func_t match_fun, simix_clean_func_t clean_fun, simix_copy_data_func_t copy_data_fun, void* data, int detached);