Commit e705dd69 authored by Dominik Charousset's avatar Dominik Charousset

Merge pull request #1138

parents 20168887 606bbecf
...@@ -65,11 +65,11 @@ public: ...@@ -65,11 +65,11 @@ public:
/// leaving `reason` for future reference. /// leaving `reason` for future reference.
void erase(actor_id key); void erase(actor_id key);
/// Increases running-actors-count by one. /// Increases running-actors-count by one. Returns the increased count.
void inc_running(); size_t inc_running();
/// Decreases running-actors-count by one. /// Decreases running-actors-count by one. Returns the decreased count.
void dec_running(); size_t dec_running();
/// Returns the number of currently running actors. /// Returns the number of currently running actors.
size_t running() const; size_t running() const;
......
...@@ -95,14 +95,16 @@ void abstract_actor::register_at_system() { ...@@ -95,14 +95,16 @@ void abstract_actor::register_at_system() {
if (getf(is_registered_flag)) if (getf(is_registered_flag))
return; return;
setf(is_registered_flag); setf(is_registered_flag);
home_system().registry().inc_running(); [[maybe_unused]] auto count = home_system().registry().inc_running();
CAF_LOG_DEBUG("actor " << id() << " increased running count to " << count);
} }
void abstract_actor::unregister_from_system() { void abstract_actor::unregister_from_system() {
if (!getf(is_registered_flag)) if (!getf(is_registered_flag))
return; return;
unsetf(is_registered_flag); unsetf(is_registered_flag);
home_system().registry().dec_running(); [[maybe_unused]] auto count = home_system().registry().dec_running();
CAF_LOG_DEBUG("actor " << id() << " decreased running count to " << count);
} }
} // namespace caf } // namespace caf
...@@ -94,26 +94,21 @@ void actor_registry::erase(actor_id key) { ...@@ -94,26 +94,21 @@ void actor_registry::erase(actor_id key) {
} }
} }
void actor_registry::inc_running() { size_t actor_registry::inc_running() {
# if CAF_LOG_LEVEL >= CAF_LOG_LEVEL_DEBUG return ++*system_.base_metrics().running_actors;
auto value = ++*system_.base_metrics().running_actors;
CAF_LOG_DEBUG(CAF_ARG(value));
# else
system_.base_metrics().running_actors->inc();
# endif
} }
size_t actor_registry::running() const { size_t actor_registry::running() const {
return static_cast<size_t>(system_.base_metrics().running_actors->value()); return static_cast<size_t>(system_.base_metrics().running_actors->value());
} }
void actor_registry::dec_running() { size_t actor_registry::dec_running() {
size_t new_val = --*system_.base_metrics().running_actors; size_t new_val = --*system_.base_metrics().running_actors;
if (new_val <= 1) { if (new_val <= 1) {
std::unique_lock<std::mutex> guard(running_mtx_); std::unique_lock<std::mutex> guard(running_mtx_);
running_cv_.notify_all(); running_cv_.notify_all();
} }
CAF_LOG_DEBUG(CAF_ARG(new_val)); return new_val;
} }
void actor_registry::await_running_count_equal(size_t expected) const { void actor_registry::await_running_count_equal(size_t expected) const {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment