summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/command.hpp6
-rw-r--r--src/object.cpp23
-rw-r--r--src/object.hpp3
-rw-r--r--src/own.cpp26
-rw-r--r--src/own.hpp1
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 ();