#include "simgrid/simix/blocking_simcall.hpp"
#include "smx_private.hpp"
#include "src/kernel/activity/CommImpl.hpp"
+#include "src/kernel/activity/MutexImpl.hpp"
#include "src/mc/mc_forward.hpp"
#include "src/mc/mc_replay.hpp"
#include "src/plugins/vm/VirtualMachineImpl.hpp"
* \param bound
* \return A new SIMIX execution synchronization
*/
-smx_activity_t simcall_execution_start(const char *name,
- double flops_amount,
- double priority, double bound)
+smx_activity_t simcall_execution_start(const char* name, double flops_amount, double priority, double bound,
+ simgrid::s4u::Host* host)
{
/* checking for infinite values */
xbt_assert(std::isfinite(flops_amount), "flops_amount is not finite!");
xbt_assert(std::isfinite(priority), "priority is not finite!");
- return simcall_BODY_execution_start(name, flops_amount, priority, bound);
+ return simcall_BODY_execution_start(name, flops_amount, priority, bound, host);
}
/**
*/
void simcall_execution_cancel(smx_activity_t execution)
{
- simgrid::simix::kernelImmediate([execution] {
- XBT_DEBUG("Cancel synchro %p", execution.get());
- simgrid::kernel::activity::ExecImplPtr exec =
- boost::static_pointer_cast<simgrid::kernel::activity::ExecImpl>(execution);
-
- if (exec->surf_exec)
- exec->surf_exec->cancel();
+ simgrid::kernel::activity::ExecImplPtr exec =
+ boost::static_pointer_cast<simgrid::kernel::activity::ExecImpl>(execution);
+ if (not exec->surfAction_)
+ return;
+ simgrid::simix::kernelImmediate([exec] {
+ XBT_DEBUG("Cancel synchro %p", exec.get());
+ if (exec->surfAction_)
+ exec->surfAction_->cancel();
});
}
simgrid::kernel::activity::ExecImplPtr exec =
boost::static_pointer_cast<simgrid::kernel::activity::ExecImpl>(execution);
- if (exec->surf_exec)
- exec->surf_exec->setSharingWeight(priority);
+ if (exec->surfAction_)
+ exec->surfAction_->setSharingWeight(priority);
});
}
simgrid::simix::kernelImmediate([execution, bound] {
simgrid::kernel::activity::ExecImplPtr exec =
boost::static_pointer_cast<simgrid::kernel::activity::ExecImpl>(execution);
- if (exec->surf_exec)
- static_cast<simgrid::surf::CpuAction*>(exec->surf_exec)->setBound(bound);
+ if (exec->surfAction_)
+ exec->surfAction_->setBound(bound);
});
}
return (e_smx_state_t) simcall_BODY_execution_wait(execution);
}
+e_smx_state_t simcall_execution_test(smx_activity_t execution)
+{
+ return (e_smx_state_t)simcall_BODY_execution_test(execution);
+}
+
/**
* \ingroup simix_process_management
* \brief Kills all SIMIX processes.
fprintf(stderr,"You must run MSG_init before using MSG\n"); // We can't use xbt_die since we may get there before the initialization
xbt_abort();
}
- return simgrid::simix::kernelImmediate([] { return new simgrid::simix::MutexImpl(); });
+ return simgrid::simix::kernelImmediate([] { return new simgrid::kernel::activity::MutexImpl(); });
}
/**