X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8f9f22a96a9349e7a1e2bea57ab8cd1361b93a8a..f9521627fe1cef73bb8eccd5b11735dcbd906dbd:/src/s4u/s4u_Actor.cpp diff --git a/src/s4u/s4u_Actor.cpp b/src/s4u/s4u_Actor.cpp index 26d0591eff..33d319a022 100644 --- a/src/s4u/s4u_Actor.cpp +++ b/src/s4u/s4u_Actor.cpp @@ -28,6 +28,7 @@ xbt::signal s4u::Actor::on_sleep; xbt::signal s4u::Actor::on_wake_up; xbt::signal s4u::Actor::on_migration_start; xbt::signal s4u::Actor::on_migration_end; +xbt::signal s4u::Actor::on_termination; xbt::signal s4u::Actor::on_destruction; // ***** Actor creation ***** @@ -76,6 +77,10 @@ void intrusive_ptr_release(Actor* actor) { intrusive_ptr_release(actor->pimpl_); } +int Actor::get_refcount() +{ + return pimpl_->get_refcount(); +} // ***** Actor methods ***** @@ -688,3 +693,19 @@ sg_actor_t sg_actor_self() { return simgrid::s4u::Actor::self(); } + +void sg_actor_self_execute(double flops) +{ + simgrid::s4u::this_actor::execute(flops); +} + +/** @brief Take an extra reference on that actor to prevent it to be garbage-collected */ +void sg_actor_ref(sg_actor_t actor) +{ + intrusive_ptr_add_ref(actor); +} +/** @brief Release a reference on that actor so that it can get be garbage-collected */ +void sg_actor_unref(sg_actor_t actor) +{ + intrusive_ptr_release(actor); +}