/** Add a function to the list of "on_exit" functions for the current actor. The on_exit functions are the functions
* executed when your actor is killed. You should use them to free the data used by your actor.
*/
- void on_exit(int_f_pvoid_pvoid_t fun, void* data);
void on_exit(std::function<void(int, void*)> fun, void* data);
/** Sets the time at which that actor should be killed */
{
set_auto_restart(a);
}
+ XBT_ATTRIB_DEPRECATED_v323("Please use a std::function<void(int, void*)> for first parameter.") void on_exit(
+ int_f_pvoid_pvoid_t fun, void* data);
XBT_ATTRIB_DEPRECATED_v323("Please use Actor::on_exit()") void onExit(int_f_pvoid_pvoid_t fun, void* data)
{
- on_exit(fun, data);
+ on_exit([fun](int a, void* b) { fun((void*)(intptr_t)a, b); }, data);
}
XBT_ATTRIB_DEPRECATED_v323("Please use Actor::set_kill_time()") void setKillTime(double time) { set_kill_time(time); }
XBT_ATTRIB_DEPRECATED_v323("Please use Actor::get_kill_time()") double getKillTime() { return get_kill_time(); }
XBT_PUBLIC void kill();
/** @brief Add a function to the list of "on_exit" functions. */
-XBT_PUBLIC void on_exit(int_f_pvoid_pvoid_t fun, void* data);
+XBT_ATTRIB_DEPRECATED_v323("Please use std::function<void(int, void*)> for first parameter.") XBT_PUBLIC
+ void on_exit(int_f_pvoid_pvoid_t fun, void* data);
XBT_PUBLIC void on_exit(std::function<void(int, void*)> fun, void* data);
/** @brief Migrate the actor to a new host. */
simgrid::simix::simcall([this, autorestart]() { pimpl_->auto_restart = autorestart; });
}
-void Actor::on_exit(int_f_pvoid_pvoid_t fun, void* data)
+void Actor::on_exit(int_f_pvoid_pvoid_t fun, void* data) /* deprecated */
{
simgrid::simix::simcall([this, fun, data] { SIMIX_process_on_exit(pimpl_, fun, data); });
}
simgrid::simix::simcall([process] { SIMIX_process_kill(process, process); });
}
-void on_exit(int_f_pvoid_pvoid_t fun, void* data)
-{
- SIMIX_process_self()->iface()->on_exit(fun, data);
-}
-
void on_exit(std::function<void(int, void*)> fun, void* data)
{
SIMIX_process_self()->iface()->on_exit(fun, data);
{
return is_suspended();
}
-void onExit /* deprecated */ (int_f_pvoid_pvoid_t fun, void* data)
+void on_exit(int_f_pvoid_pvoid_t fun, void* data) /* deprecated */
+{
+ SIMIX_process_self()->iface()->on_exit([fun](int a, void* b) { fun((void*)(intptr_t)a, b); }, data);
+}
+void onExit(int_f_pvoid_pvoid_t fun, void* data) /* deprecated */
{
- on_exit(fun, data);
+ on_exit([fun](int a, void* b) { fun((void*)(intptr_t)a, b); }, data);
}
} // namespace this_actor