diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/command.hpp | 6 | ||||
| -rw-r--r-- | src/object.cpp | 23 | ||||
| -rw-r--r-- | src/object.hpp | 3 | ||||
| -rw-r--r-- | src/own.cpp | 26 | ||||
| -rw-r--r-- | src/own.hpp | 1 | 
5 files changed, 10 insertions, 49 deletions
| diff --git a/src/command.hpp b/src/command.hpp index b99e21f..b7a14c3 100644 --- a/src/command.hpp +++ b/src/command.hpp @@ -44,7 +44,6 @@ namespace xs          {              stop,              plug, -            own,              attach,              bind,              activate_read, @@ -71,11 +70,6 @@ namespace xs              struct {              } plug; -            //  Sent to socket to let it know about the newly created object. -            struct { -                xs::own_t *object; -            } own; -              //  Attach the engine to the session. If engine is NULL, it informs              //  session that the connection have failed.              struct { diff --git a/src/object.cpp b/src/object.cpp index 4f04fe4..dac4b6c 100644 --- a/src/object.cpp +++ b/src/object.cpp @@ -77,11 +77,6 @@ void xs::object_t::process_command (command_t &cmd_)          process_seqnum ();          break; -    case command_t::own: -        process_own (cmd_.args.own.object); -        process_seqnum (); -        break; -      case command_t::attach:          process_attach (cmd_.args.attach.engine);          process_seqnum (); @@ -186,19 +181,6 @@ void xs::object_t::send_plug (own_t *destination_, bool inc_seqnum_)      send_command (cmd);  } -void xs::object_t::send_own (own_t *destination_, own_t *object_) -{ -    destination_->inc_seqnum (); -    command_t cmd; -#if defined XS_MAKE_VALGRIND_HAPPY -    memset (&cmd, 0, sizeof (cmd)); -#endif -    cmd.destination = destination_; -    cmd.type = command_t::own; -    cmd.args.own.object = object_; -    send_command (cmd); -} -  void xs::object_t::send_attach (session_base_t *destination_,      i_engine *engine_, bool inc_seqnum_)  { @@ -369,11 +351,6 @@ void xs::object_t::process_plug ()      xs_assert (false);  } -void xs::object_t::process_own (own_t *object_) -{ -    xs_assert (false); -} -  void xs::object_t::process_attach (i_engine *engine_)  {      xs_assert (false); diff --git a/src/object.hpp b/src/object.hpp index fabb156..b695308 100644 --- a/src/object.hpp +++ b/src/object.hpp @@ -74,8 +74,6 @@ namespace xs          void send_stop ();          void send_plug (xs::own_t *destination_,              bool inc_seqnum_ = true); -        void send_own (xs::own_t *destination_, -            xs::own_t *object_);          void send_attach (xs::session_base_t *destination_,               xs::i_engine *engine_, bool inc_seqnum_ = true);          void send_bind (xs::own_t *destination_, xs::pipe_t *pipe_, @@ -98,7 +96,6 @@ namespace xs          //  called when command arrives from another thread.          virtual void process_stop ();          virtual void process_plug (); -        virtual void process_own (xs::own_t *object_);          virtual void process_attach (xs::i_engine *engine_);          virtual void process_bind (xs::pipe_t *pipe_);          virtual void process_activate_read (); diff --git a/src/own.cpp b/src/own.cpp index 968d272..45f1cbf 100644 --- a/src/own.cpp +++ b/src/own.cpp @@ -76,8 +76,16 @@ void xs::own_t::launch_child (own_t *object_)      //  Plug the object into the I/O thread.      send_plug (object_); -    //  Take ownership of the object. -    send_own (this, object_); +    //  If the object is already being shut down, new owned objects are +    //  immediately asked to terminate. Note that linger is set to zero. +    if (terminating) { +        register_term_acks (1); +        send_term (object_, 0); +        return; +    } + +    //  Store the reference to the owned object. +    owned.insert (object_);  }  void xs::own_t::process_term_req (own_t *object_) @@ -103,20 +111,6 @@ void xs::own_t::process_term_req (own_t *object_)      send_term (object_, options.linger);  } -void xs::own_t::process_own (own_t *object_) -{ -    //  If the object is already being shut down, new owned objects are -    //  immediately asked to terminate. Note that linger is set to zero. -    if (terminating) { -        register_term_acks (1); -        send_term (object_, 0); -        return; -    } - -    //  Store the reference to the owned object. -    owned.insert (object_); -} -  void xs::own_t::terminate ()  {      //  If termination is already underway, there's no point diff --git a/src/own.hpp b/src/own.hpp index 2d47a39..5c0e438 100644 --- a/src/own.hpp +++ b/src/own.hpp @@ -68,7 +68,6 @@ namespace xs      protected:          //  Handlers for incoming commands. -        void process_own (own_t *object_);          void process_term_req (own_t *object_);          void process_term_ack ();          void process_seqnum (); | 
