Commit a15df24a authored by Dominik Charousset's avatar Dominik Charousset

fixed memory mgmnt for IO actors

parent a434453d
...@@ -46,14 +46,14 @@ class io_actor_continuation { ...@@ -46,14 +46,14 @@ class io_actor_continuation {
io_actor_continuation(io_actor_ptr ptr, mailbox_element* elem) io_actor_continuation(io_actor_ptr ptr, mailbox_element* elem)
: m_self(std::move(ptr)), m_elem(elem) { } : m_self(std::move(ptr)), m_elem(elem) { }
void operator()() const { inline void operator()() const {
m_self->invoke_message(m_elem); m_self->invoke_message(m_elem);
} }
private: private:
intrusive_ptr<io_actor> m_self; io_actor_ptr m_self;
mailbox_element* m_elem; mailbox_element* m_elem;
}; };
...@@ -63,7 +63,7 @@ class default_io_actor_impl : public io_actor { ...@@ -63,7 +63,7 @@ class default_io_actor_impl : public io_actor {
typedef std::function<void (io_service*)> function_type; typedef std::function<void (io_service*)> function_type;
default_io_actor_impl(function_type fun) : m_fun(std::move(fun)) { } default_io_actor_impl(function_type&& fun) : m_fun(std::move(fun)) { }
void init() override { void init() override {
m_fun(&io_handle()); m_fun(&io_handle());
...@@ -102,6 +102,7 @@ void io_actor::invoke_message(mailbox_element* elem) { ...@@ -102,6 +102,7 @@ void io_actor::invoke_message(mailbox_element* elem) {
} }
if (exit_reason() != exit_reason::not_exited) { if (exit_reason() != exit_reason::not_exited) {
get_actor_registry()->dec_running(); get_actor_registry()->dec_running();
m_parent.reset();
} }
} }
......
...@@ -28,8 +28,6 @@ ...@@ -28,8 +28,6 @@
\******************************************************************************/ \******************************************************************************/
#include <iostream>
#include "cppa/singletons.hpp" #include "cppa/singletons.hpp"
#include "cppa/network/middleman.hpp" #include "cppa/network/middleman.hpp"
...@@ -53,7 +51,6 @@ io_actor_backend::io_actor_backend(input_stream_ptr in, ...@@ -53,7 +51,6 @@ io_actor_backend::io_actor_backend(input_stream_ptr in,
} }
io_actor_backend::~io_actor_backend() { io_actor_backend::~io_actor_backend() {
std::cout << "~io_actor_backend" << std::endl;
handle_disconnect(); handle_disconnect();
} }
......
...@@ -75,7 +75,7 @@ class middleman_event { ...@@ -75,7 +75,7 @@ class middleman_event {
public: public:
template<typename Arg> template<typename Arg>
middleman_event(Arg&& arg) : next(0), fun(forward<Arg>(arg)) { } middleman_event(Arg&& arg) : next(nullptr), fun(forward<Arg>(arg)) { }
inline void operator()() { fun(); } inline void operator()() { fun(); }
......
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