Commit b1340ea2 authored by Sebastian Woelke's avatar Sebastian Woelke

Add debug tracking for home execution unit

parent 0afd7caf
......@@ -62,6 +62,10 @@ public:
proxies_ = ptr;
}
virtual std::string to_string() const {
return "execution unit has no description yet";
}
protected:
actor_system* system_;
proxy_registry* proxies_;
......
......@@ -83,6 +83,14 @@ class scheduled_actor : public local_actor, public resumable {
public:
// -- member types -----------------------------------------------------------
std::string to_string_home_eu() const {
return home_eu_->to_string();
}
std::string to_string_current_eu() const {
return current_eu_->to_string();
}
/// A reference-counting pointer to a `stream_handler`.
using stream_handler_ptr = intrusive_ptr<stream_handler>;
......@@ -695,6 +703,7 @@ protected:
/// Stores the home execution unit.
execution_unit* home_eu_;
execution_unit* current_eu_;
/// @endcond
};
......
......@@ -90,6 +90,10 @@ public:
return id_;
}
std::string to_string() const override {
return std::string("id: ") + std::to_string(static_cast<int>(id()));
}
std::thread& get_thread() {
return this_thread_;
}
......
......@@ -36,6 +36,11 @@ public:
/// It is assumed that `this` is never in the neighborhood of `ptr`.
bool is_neighbor(execution_unit* ptr) const override;
std::string to_string() const override {
return "scoped_execution_unit";
}
};
} // namespace caf
......
......@@ -107,6 +107,7 @@ scheduled_actor::scheduled_actor(actor_config& cfg)
, exception_handler_(default_exception_handler)
# endif // CAF_NO_EXCEPTIONS
, home_eu_(cfg.host)
, current_eu_(cfg.host)
{
// nop
}
......@@ -229,6 +230,7 @@ void scheduled_actor::intrusive_ptr_release_impl() {
resumable::resume_result
scheduled_actor::resume(execution_unit* ctx, size_t max_throughput) {
current_eu_ = ctx;
CAF_PUSH_AID(id());
if (!activate(ctx))
return resume_result::done;
......
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