summaryrefslogtreecommitdiff
path: root/src/own.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/own.cpp')
-rw-r--r--src/own.cpp26
1 files changed, 10 insertions, 16 deletions
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