int count_ = 0;
bool working_ = false;
simgrid::s4u::ActivityPtr current_activity_;
- std::function<void(Operation*)> end_func_ = [](Operation*) {};
- std::function<void(Operation*)> start_func_ = [](Operation*) {};
+ std::function<void(Operation*)> end_func_;
+ std::function<void(Operation*)> start_func_;
Operation(const std::string& name);
virtual ~Operation() = default;
virtual void execute() = 0;
working_ = false;
count_++;
});
- end_func_(this);
+ if (end_func_)
+ end_func_(this);
Operation::on_end(this);
for (auto const& op : successors_)
op->receive(this);
*/
void ExecOp::execute()
{
- start_func_(this);
+ if (start_func_)
+ start_func_(this);
Operation::on_start(this);
simgrid::kernel::actor::simcall_answered([this] {
working_ = true;
*/
void CommOp::execute()
{
- start_func_(this);
+ if (start_func_)
+ start_func_(this);
Operation::on_start(this);
simgrid::kernel::actor::simcall_answered([this] {
working_ = true;