namespace simgrid {
namespace s4u {
xbt::signal<void(Io const&)> Io::on_start;
-xbt::signal<void(Io const&)> Io::on_completion;
Io::Io(kernel::activity::IoImplPtr pimpl)
{
pimpl_ = pimpl;
}
-void Io::complete(Activity::State state)
-{
- Activity::complete(state);
- on_completion(*this);
-}
-
IoPtr Io::init()
{
auto pimpl = kernel::activity::IoImplPtr(new kernel::activity::IoImpl());
- return IoPtr(pimpl->get_iface());
+ return IoPtr(static_cast<Io*>(pimpl->get_iface()));
}
Io* Io::start()
return this;
}
+IoPtr Io::update_priority(double priority)
+{
+ kernel::actor::simcall([this, priority] {
+ boost::static_pointer_cast<kernel::activity::IoImpl>(pimpl_)->update_sharing_penalty(1. / priority);
+ });
+ return this;
+}
+
/** @brief Returns the amount of flops that remain to be done */
double Io::get_remaining() const
{