}
public:
-
- template<class F>
- Task(F code)
- {
- this->init(std::move(code));
- }
+ template <class F> explicit Task(F code) { this->init(std::move(code)); }
operator bool() const { return vtable_ != nullptr; }
bool operator!() const { return vtable_ == nullptr; }
-> Task< decltype(code(std::move(args)...))() >
{
TaskImpl<F, Args...> task(std::move(code), std::make_tuple(std::move(args)...));
- return std::move(task);
+ return Task<decltype(code(std::move(args)...))()>(std::move(task));
}
}
*/
smx_timer_t SIMIX_timer_set(double date, void (*callback)(void*), void *arg)
{
- smx_timer_t timer = new s_smx_timer_t(date, [callback, arg]() { callback(arg); });
+ smx_timer_t timer = new s_smx_timer_t(date, simgrid::xbt::makeTask([callback, arg]() { callback(arg); }));
timer->handle_ = simix_timers.emplace(std::make_pair(date, timer));
return timer;
}