Commit e9065d26 authored by Dominik Charousset's avatar Dominik Charousset

Fix stack-reference issues

parent 76831743
......@@ -145,7 +145,8 @@ behavior peer_acceptor_fun(broker* self, const actor& buddy) {
}
void run_client(int argc, char** argv, uint16_t port) {
actor_system system{actor_system_config{}.load<io::middleman>().parse(argc, argv)};
actor_system_config cfg;
actor_system system{cfg.load<io::middleman>().parse(argc, argv)};
auto p = system.spawn(ping, size_t{10});
CAF_MESSAGE("spawn_client...");
auto cl = system.middleman().spawn_client(peer_fun, "127.0.0.1", port, p);
......@@ -155,7 +156,8 @@ void run_client(int argc, char** argv, uint16_t port) {
}
void run_server(int argc, char** argv) {
actor_system system{actor_system_config{}.load<io::middleman>().parse(argc, argv)};
actor_system_config cfg;
actor_system system{cfg.load<io::middleman>().parse(argc, argv)};
scoped_actor self{system};
CAF_MESSAGE("spawn peer acceptor");
auto serv = system.middleman().spawn_broker(peer_acceptor_fun,
......
......@@ -171,8 +171,7 @@ behavior server(broker* self) {
class fixture {
public:
fixture() : system(actor_system_config{}
.load<io::middleman, network::test_multiplexer>()),
fixture() : system(cfg.load<io::middleman, network::test_multiplexer>()),
aut_(unsafe_actor_handle_init) {
mpx_ = dynamic_cast<network::test_multiplexer*>(&system.middleman().backend());
CAF_REQUIRE(mpx_ != nullptr);
......@@ -227,6 +226,7 @@ public:
return {this};
}
actor_system_config cfg;
actor_system system;
actor aut_;
abstract_broker* aut_ptr_;
......
......@@ -116,7 +116,8 @@ void run_client(int argc, char** argv, uint16_t port) {
}
void run_server(int argc, char** argv) {
actor_system system{actor_system_config{}.load<io::middleman>().parse(argc, argv)};
actor_system_config cfg;
actor_system system{cfg.load<io::middleman>().parse(argc, argv)};
auto serv = system.spawn(server);
auto port = system.middleman().publish(serv, 0);
CAF_REQUIRE(port != 0);
......
......@@ -159,7 +159,8 @@ acceptor::behavior_type acceptor_fun(acceptor::broker_pointer self,
}
void run_client(int argc, char** argv, uint16_t port) {
actor_system system{actor_system_config{}.load<io::middleman>().parse(argc, argv)};
actor_system_config cfg;
actor_system system{cfg.load<io::middleman>().parse(argc, argv)};
auto p = system.spawn(ping, size_t{10});
CAF_MESSAGE("spawn_client_typed...");
auto cl = system.middleman().spawn_client(peer_fun, "localhost", port, p);
......@@ -169,7 +170,8 @@ void run_client(int argc, char** argv, uint16_t port) {
}
void run_server(int argc, char** argv) {
actor_system system{actor_system_config{}.load<io::middleman>().parse(argc, argv)};
actor_system_config cfg;
actor_system system{cfg.load<io::middleman>().parse(argc, argv)};
scoped_actor self{system};
auto serv = system.middleman().spawn_broker(acceptor_fun, system.spawn(pong));
std::thread child;
......
......@@ -56,10 +56,9 @@ public:
struct fixture {
fixture() : testee(unsafe_actor_handle_init) {
new (&system) actor_system(actor_system_config{}
.load<io::middleman>()
.parse(test::engine::argc(),
test::engine::argv()));
new (&system) actor_system(cfg.load<io::middleman>()
.parse(test::engine::argc(),
test::engine::argv()));
testee = system.spawn<dummy>();
}
......@@ -92,6 +91,7 @@ struct fixture {
return result;
}
actor_system_config cfg;
union { actor_system system; }; // manually control ctor/dtor
actor testee;
};
......
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