/***************************** Io **************************************/
#ifdef __cplusplus
XBT_PUBLIC e_smx_state_t simcall_io_wait(simgrid::kernel::activity::ActivityImpl* io, double timeout);
-XBT_PUBLIC bool simcall_io_test(simgrid::kernel::activity::ActivityImpl* io);
+XBT_ATTRIB_DEPRECATED_v330("Please use s4u::Io::test()") XBT_PUBLIC
+ bool simcall_io_test(simgrid::kernel::activity::ActivityImpl* io);
+XBT_ATTRIB_DEPRECATED_v330("Please use s4u::Io::test()") XBT_PUBLIC
+ bool simcall_io_test(const simgrid::kernel::activity::ActivityImplPtr& io);
XBT_ATTRIB_DEPRECATED_v330("Please use an ActivityImpl* for first parameter") inline e_smx_state_t
simcall_io_wait(const simgrid::kernel::activity::ActivityImplPtr& io, double timeout)
{
return simcall_io_wait(io.get(), timeout);
}
-XBT_ATTRIB_DEPRECATED_v330("Please use an ActivityImpl* for first parameter") inline bool simcall_io_test(
- const simgrid::kernel::activity::ActivityImplPtr& io)
-{
- return simcall_io_test(io.get());
-}
#endif
/************************** MC simcalls **********************************/
}
}
-void simcall_HANDLER_io_test(smx_simcall_t simcall, simgrid::kernel::activity::IoImpl* synchro)
-{
- bool res = (synchro->state_ != simgrid::kernel::activity::State::WAITING &&
- synchro->state_ != simgrid::kernel::activity::State::RUNNING);
- if (res) {
- synchro->simcalls_.push_back(simcall);
- synchro->finish();
- } else {
- simcall->issuer_->simcall_answer();
- }
- simcall_io_test__set__result(simcall, res);
-}
-
namespace simgrid {
namespace kernel {
namespace activity {
if (state_ == State::INITED || state_ == State::STARTING)
this->vetoable_start();
- if (simcall_io_test(get_impl())) {
+ if (kernel::actor::simcall([this] { return this->get_impl()->test(); })) {
state_ = State::FINISHED;
this->release_dependencies();
return true;
return simgrid::kernel::actor::simcall([execution] { return execution->test(); });
}
+bool simcall_execution_test(const simgrid::kernel::activity::ActivityImplPtr& execution) // XBT_ATTRIB_DEPRECATED_v330
+{
+ return simgrid::kernel::actor::simcall([execution] { return execution->test(); });
+}
+
unsigned int simcall_execution_waitany_for(simgrid::kernel::activity::ExecImpl* execs[], size_t count, double timeout)
{
return simcall_BODY_execution_waitany_for(execs, count, timeout);
return (e_smx_state_t)simcall_BODY_io_wait(static_cast<simgrid::kernel::activity::IoImpl*>(io), timeout);
}
-bool simcall_io_test(simgrid::kernel::activity::ActivityImpl* io)
+bool simcall_io_test(simgrid::kernel::activity::ActivityImpl* io) // XBT_ATTRIB_DEPRECATED_v330
+{
+ return simgrid::kernel::actor::simcall([io] { return io->test(); });
+}
+
+bool simcall_io_test(const simgrid::kernel::activity::ActivityImplPtr& io) // XBT_ATTRIB_DEPRECATD_v330
{
- return simcall_BODY_io_test(static_cast<simgrid::kernel::activity::IoImpl*>(io));
+ return simgrid::kernel::actor::simcall([io] { return io->test(); });
}
void simcall_run_kernel(std::function<void()> const& code, simgrid::mc::SimcallInspector* t)
simgrid::simix::marshal<sg_size_t>(simcall->result_, result);
}
-static inline simgrid::kernel::activity::IoImpl* simcall_io_test__get__io(smx_simcall_t simcall)
-{
- return simgrid::simix::unmarshal<simgrid::kernel::activity::IoImpl*>(simcall->args_[0]);
-}
-static inline simgrid::kernel::activity::IoImpl* simcall_io_test__getraw__io(smx_simcall_t simcall)
-{
- return simgrid::simix::unmarshal_raw<simgrid::kernel::activity::IoImpl*>(simcall->args_[0]);
-}
-static inline void simcall_io_test__set__io(smx_simcall_t simcall, simgrid::kernel::activity::IoImpl* arg)
-{
- simgrid::simix::marshal<simgrid::kernel::activity::IoImpl*>(simcall->args_[0], arg);
-}
-static inline bool simcall_io_test__get__result(smx_simcall_t simcall)
-{
- return simgrid::simix::unmarshal<bool>(simcall->result_);
-}
-static inline bool simcall_io_test__getraw__result(smx_simcall_t simcall)
-{
- return simgrid::simix::unmarshal_raw<bool>(simcall->result_);
-}
-static inline void simcall_io_test__set__result(smx_simcall_t simcall, bool result)
-{
- simgrid::simix::marshal<bool>(simcall->result_, result);
-}
-
static inline int simcall_mc_random__get__min(smx_simcall_t simcall)
{
return simgrid::simix::unmarshal<int>(simcall->args_[0]);
XBT_PRIVATE void simcall_HANDLER_sem_acquire(smx_simcall_t simcall, smx_sem_t sem);
XBT_PRIVATE void simcall_HANDLER_sem_acquire_timeout(smx_simcall_t simcall, smx_sem_t sem, double timeout);
XBT_PRIVATE void simcall_HANDLER_io_wait(smx_simcall_t simcall, simgrid::kernel::activity::IoImpl* io, double timeout);
-XBT_PRIVATE void simcall_HANDLER_io_test(smx_simcall_t simcall, simgrid::kernel::activity::IoImpl* io);
XBT_PRIVATE int simcall_HANDLER_mc_random(smx_simcall_t simcall, int min, int max);
return simcall<sg_size_t, simgrid::kernel::activity::IoImpl*, double>(SIMCALL_IO_WAIT, io, timeout);
}
-inline static bool simcall_BODY_io_test(simgrid::kernel::activity::IoImpl* io)
-{
- if (0) /* Go to that function to follow the code flow through the simcall barrier */
- simcall_HANDLER_io_test(&SIMIX_process_self()->simcall, io);
- return simcall<bool, simgrid::kernel::activity::IoImpl*>(SIMCALL_IO_TEST, io);
-}
-
inline static int simcall_BODY_mc_random(int min, int max)
{
if (0) /* Go to that function to follow the code flow through the simcall barrier */
SIMCALL_SEM_ACQUIRE,
SIMCALL_SEM_ACQUIRE_TIMEOUT,
SIMCALL_IO_WAIT,
- SIMCALL_IO_TEST,
SIMCALL_MC_RANDOM,
SIMCALL_RUN_KERNEL,
SIMCALL_RUN_BLOCKING,
"SIMCALL_SEM_ACQUIRE",
"SIMCALL_SEM_ACQUIRE_TIMEOUT",
"SIMCALL_IO_WAIT",
- "SIMCALL_IO_TEST",
"SIMCALL_MC_RANDOM",
"SIMCALL_RUN_KERNEL",
"SIMCALL_RUN_BLOCKING",
simcall_HANDLER_io_wait(&simcall, simgrid::simix::unmarshal<simgrid::kernel::activity::IoImpl*>(simcall.args_[0]), simgrid::simix::unmarshal<double>(simcall.args_[1]));
break;
- case SIMCALL_IO_TEST:
- simcall_HANDLER_io_test(&simcall, simgrid::simix::unmarshal<simgrid::kernel::activity::IoImpl*>(simcall.args_[0]));
- break;
-
case SIMCALL_MC_RANDOM:
simgrid::simix::marshal<int>(simcall.result_, simcall_HANDLER_mc_random(&simcall, simgrid::simix::unmarshal<int>(simcall.args_[0]), simgrid::simix::unmarshal<int>(simcall.args_[1])));
simcall_answer();
int sem_acquire_timeout(smx_sem_t sem, double timeout) [[block]];
sg_size_t io_wait(simgrid::kernel::activity::IoImpl* io, double timeout) [[block]];
-bool io_test(simgrid::kernel::activity::IoImpl* io) [[block]];
int mc_random(int min, int max);