X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/81588aeededcff1407c760226b43f347eb832b39..48efae676c3604efffe21365b2d525e578fd22e5:/src/simix/libsmx.cpp diff --git a/src/simix/libsmx.cpp b/src/simix/libsmx.cpp index 3b36d09a14..bbea457dd7 100644 --- a/src/simix/libsmx.cpp +++ b/src/simix/libsmx.cpp @@ -22,6 +22,8 @@ #include "mc/mc.h" #include "src/simix/smx_host_private.h" +#include "src/simix/SynchroComm.hpp" + #include XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix); @@ -123,18 +125,6 @@ smx_synchro_t simcall_execution_parallel_start(const char *name, } -/** - * \ingroup simix_process_management - * \brief Destroys an execution synchro. - * - * Destroys a synchro, freeing its memory. This function cannot be called if there are a conditional waiting for it. - * \param execution The execution synchro to destroy - */ -void simcall_execution_destroy(smx_synchro_t execution) -{ - simcall_BODY_execution_destroy(execution); -} - /** * \ingroup simix_process_management * \brief Cancels an execution synchro. @@ -147,30 +137,6 @@ void simcall_execution_cancel(smx_synchro_t execution) simcall_BODY_execution_cancel(execution); } -/** - * \ingroup simix_process_management - * \brief Returns how much of an execution synchro remains to be done. - * - * \param execution The execution synchro - * \return The remaining amount - */ -double simcall_execution_get_remains(smx_synchro_t execution) -{ - return simcall_BODY_execution_get_remains(execution); -} - -/** - * \ingroup simix_process_management - * \brief Returns the state of an execution synchro. - * - * \param execution The execution synchro - * \return The state - */ -e_smx_state_t simcall_execution_get_state(smx_synchro_t execution) -{ - return simcall_BODY_execution_get_state(execution); -} - /** * \ingroup simix_process_management * \brief Changes the priority of an execution synchro. @@ -708,9 +674,10 @@ smx_mailbox_t simcall_mbox_get_by_name(const char *name) * \param mbox The rendez-vous point * \return The communication or NULL if empty */ -smx_synchro_t simcall_mbox_get_head(smx_mailbox_t mbox) +smx_synchro_t simcall_mbox_front(smx_mailbox_t mbox) { - return simcall_BODY_mbox_get_head(mbox); + + return mbox->comm_queue->empty()? nullptr:mbox->comm_queue->front(); } void simcall_mbox_set_receiver(smx_mailbox_t mbox, smx_process_t process) @@ -718,11 +685,6 @@ void simcall_mbox_set_receiver(smx_mailbox_t mbox, smx_process_t process) simcall_BODY_mbox_set_receiver(mbox, process); } -smx_process_t simcall_mbox_get_receiver(smx_mailbox_t mbox) -{ - return simcall_BODY_mbox_get_receiver(mbox); -} - /** * \ingroup simix_comm_management */ @@ -827,9 +789,12 @@ smx_synchro_t simcall_comm_iprobe(smx_mailbox_t mbox, int type, int src, int tag /** * \ingroup simix_comm_management */ -void simcall_comm_cancel(smx_synchro_t comm) +void simcall_comm_cancel(smx_synchro_t synchro) { - simcall_BODY_comm_cancel(comm); + simgrid::simix::kernel([synchro]{ + simgrid::simix::Comm *comm = static_cast(synchro); + comm->cancel(); + }); } /** @@ -883,51 +848,6 @@ int simcall_comm_test(smx_synchro_t comm) return simcall_BODY_comm_test(comm); } -/** - * \ingroup simix_comm_management - * - */ -double simcall_comm_get_remains(smx_synchro_t comm) -{ - return simcall_BODY_comm_get_remains(comm); -} - -/** - * \ingroup simix_comm_management - * - */ -void *simcall_comm_get_src_data(smx_synchro_t comm) -{ - return simcall_BODY_comm_get_src_data(comm); -} - -/** - * \ingroup simix_comm_management - * - */ -void *simcall_comm_get_dst_data(smx_synchro_t comm) -{ - return simcall_BODY_comm_get_dst_data(comm); -} - -/** - * \ingroup simix_comm_management - * - */ -smx_process_t simcall_comm_get_src_proc(smx_synchro_t comm) -{ - return simcall_BODY_comm_get_src_proc(comm); -} - -/** - * \ingroup simix_comm_management - * - */ -smx_process_t simcall_comm_get_dst_proc(smx_synchro_t comm) -{ - return simcall_BODY_comm_get_dst_proc(comm); -} - /** * \ingroup simix_synchro_management *