Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
fix build (and please valgrind)
[simgrid.git] / src / s4u / s4u_Actor.cpp
index 18339ed..940243c 100644 (file)
@@ -74,7 +74,12 @@ void Actor::set_auto_restart(bool autorestart)
   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); });
+}
+
+void Actor::on_exit(std::function<void(int, void*)> fun, void* data)
 {
   simgrid::simix::simcall([this, fun, data] { SIMIX_process_on_exit(pimpl_, fun, data); });
 }
@@ -214,18 +219,18 @@ void Actor::kill_all()
 
 std::map<std::string, std::string>* Actor::get_properties()
 {
-  return simgrid::simix::simcall([this] { return this->pimpl_->getProperties(); });
+  return simgrid::simix::simcall([this] { return this->pimpl_->get_properties(); });
 }
 
 /** Retrieve the property value (or nullptr if not set) */
 const char* Actor::get_property(const char* key)
 {
-  return simgrid::simix::simcall([this, key] { return pimpl_->getProperty(key); });
+  return simgrid::simix::simcall([this, key] { return pimpl_->get_property(key); });
 }
 
 void Actor::set_property(const char* key, const char* value)
 {
-  simgrid::simix::simcall([this, key, value] { pimpl_->setProperty(key, value); });
+  simgrid::simix::simcall([this, key, value] { pimpl_->set_property(key, value); });
 }
 
 Actor* Actor::restart()
@@ -366,7 +371,7 @@ void kill()
   simgrid::simix::simcall([process] { SIMIX_process_kill(process, process); });
 }
 
-void on_exit(int_f_pvoid_pvoid_t fun, void* data)
+void on_exit(std::function<void(int, void*)> fun, void* data)
 {
   SIMIX_process_self()->iface()->on_exit(fun, data);
 }
@@ -408,9 +413,13 @@ bool isSuspended() /* deprecated */
 {
   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