throw the on_completion signal
THROW_IMPOSSIBLE;
break;
}
THROW_IMPOSSIBLE;
break;
}
SIMIX_io_finish(this);
}
/*************
SIMIX_io_finish(this);
}
/*************
namespace activity {
class XBT_PUBLIC IoImpl : public ActivityImpl {
namespace activity {
class XBT_PUBLIC IoImpl : public ActivityImpl {
explicit IoImpl(std::string name, resource::Action* surf_action, s4u::Storage* storage);
explicit IoImpl(std::string name, resource::Action* surf_action, s4u::Storage* storage);
void suspend() override;
void resume() override;
void post() override;
void suspend() override;
void resume() override;
void post() override;
SIMIX_synchro_stop_waiting(process, &process->simcall);
} else if (io != nullptr) {
SIMIX_synchro_stop_waiting(process, &process->simcall);
} else if (io != nullptr) {
- SIMIX_io_destroy(process->waiting_synchro);
} else {
xbt_die("Unknown type of activity");
}
} else {
xbt_die("Unknown type of activity");
}
simgrid::kernel::activity::IoImplPtr io =
boost::dynamic_pointer_cast<simgrid::kernel::activity::IoImpl>(process->waiting_synchro);
if (io != nullptr) {
simgrid::kernel::activity::IoImplPtr io =
boost::dynamic_pointer_cast<simgrid::kernel::activity::IoImpl>(process->waiting_synchro);
if (io != nullptr) {
- SIMIX_io_destroy(process->waiting_synchro);
}
}
process->waiting_synchro = nullptr;
}
}
process->waiting_synchro = nullptr;
SIMIX_io_finish(synchro);
}
SIMIX_io_finish(synchro);
}
-void SIMIX_io_destroy(smx_activity_t synchro)
-{
- simgrid::kernel::activity::IoImplPtr io = boost::static_pointer_cast<simgrid::kernel::activity::IoImpl>(synchro);
- XBT_DEBUG("Destroy synchro %p", synchro.get());
- if (io->surf_action_)
- io->surf_action_->unref();
-}
-
void SIMIX_io_finish(smx_activity_t synchro)
{
for (smx_simcall_t const& simcall : synchro->simcalls_) {
void SIMIX_io_finish(smx_activity_t synchro)
{
for (smx_simcall_t const& simcall : synchro->simcalls_) {
#define SIMIX_IO_PRIVATE_HPP
#include <xbt/base.h>
#define SIMIX_IO_PRIVATE_HPP
#include <xbt/base.h>
-
-#include "popping_private.hpp"
#include "simgrid/s4u/Io.hpp"
#include "simgrid/s4u/Io.hpp"
-#include "simgrid/simix.h"
XBT_PRIVATE simgrid::kernel::activity::IoImplPtr SIMIX_io_start(std::string name, sg_size_t size, sg_storage_t storage,
simgrid::s4u::Io::OpType type);
XBT_PRIVATE simgrid::kernel::activity::IoImplPtr SIMIX_io_start(std::string name, sg_size_t size, sg_storage_t storage,
simgrid::s4u::Io::OpType type);
-XBT_PRIVATE void SIMIX_io_destroy(smx_activity_t synchro);
XBT_PRIVATE void SIMIX_io_finish(smx_activity_t synchro);
#endif
XBT_PRIVATE void SIMIX_io_finish(smx_activity_t synchro);
#endif