Commit ecc37096 authored by Dominik Charousset's avatar Dominik Charousset

Fix recursion issue in composable behaviors

parent 463c9c20
......@@ -31,7 +31,7 @@ class abstract_composable_behavior {
public:
virtual ~abstract_composable_behavior();
virtual unit_t init_behavior(message_handler& x) = 0;
virtual void init_behavior(message_handler& x) = 0;
};
} // namespace caf
......
......@@ -89,7 +89,11 @@ public:
return unit;
}
unit_t init_behavior(message_handler& x) override {
void init_behavior(message_handler& x) override {
init_behavior_impl(x);
}
unit_t init_behavior_impl(message_handler& x) {
if (x)
x = x.or_else(composable_behavior_base<Clauses>::make_callback()...);
else
......
......@@ -57,8 +57,12 @@ public:
return unit(static_cast<Ts*>(this)->init_selfptr(x)...);
}
unit_t init_behavior(message_handler& x) override {
return unit(static_cast<Ts*>(this)->init_behavior(x)...);
void init_behavior(message_handler& x) override {
init_behavior_impl(x);
}
unit_t init_behavior_impl(message_handler& x) {
return unit(static_cast<Ts*>(this)->init_behavior_impl(x)...);
}
protected:
......
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