+class ActorJoinSimcall final : public SimcallObserver {
+ s4u::ActorPtr const other_; // We need a Ptr to ensure access to the actor after its end, but Ptr requires s4u
+ const double timeout_;
+
+public:
+ ActorJoinSimcall(ActorImpl* actor, ActorImpl* other, double timeout = -1.0);
+ void serialize(std::stringstream& stream) const override;
+ std::string to_string() const override;
+ bool is_enabled() override;
+
+ s4u::ActorPtr get_other_actor() const { return other_; }
+ double get_timeout() const { return timeout_; }
+};