diff options
author | Martin Sustrik <sustrik@250bpm.com> | 2010-10-16 10:53:29 +0200 |
---|---|---|
committer | Martin Sustrik <sustrik@250bpm.com> | 2010-10-16 10:53:29 +0200 |
commit | 0a03e86e9547fa7c221b316a5a943467adea3dfd (patch) | |
tree | f47b0cd7d3c91c59de419506f8d66c27e327e41c /src/object.cpp | |
parent | a1474e305762d32df2b79300d124aac7fa0181c8 (diff) |
ZMQ_LINGER socket option added.
1. ZMQ_LINGER option can be set/get
2. options are part of own_t base class rather than being declared
separately by individual objects
3. Linger option is propagated with "term" command so that the
newest value of it is used rather than the stored old one.
4. Session sets the linger timer if needed and terminates
as soon as it expires.
5. Corresponding documentation updated.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
Diffstat (limited to 'src/object.cpp')
-rw-r--r-- | src/object.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/object.cpp b/src/object.cpp index 90c015a..fc08785 100644 --- a/src/object.cpp +++ b/src/object.cpp @@ -106,7 +106,7 @@ void zmq::object_t::process_command (command_t &cmd_) break; case command_t::term: - process_term (); + process_term (cmd_.args.term.linger); break; case command_t::term_ack: @@ -312,7 +312,7 @@ void zmq::object_t::send_term_req (own_t *destination_, send_command (cmd); } -void zmq::object_t::send_term (own_t *destination_) +void zmq::object_t::send_term (own_t *destination_, int linger_) { command_t cmd; #if defined ZMQ_MAKE_VALGRIND_HAPPY @@ -320,6 +320,7 @@ void zmq::object_t::send_term (own_t *destination_) #endif cmd.destination = destination_; cmd.type = command_t::term; + cmd.args.term.linger = linger_; send_command (cmd); } @@ -386,7 +387,7 @@ void zmq::object_t::process_term_req (own_t *object_) zmq_assert (false); } -void zmq::object_t::process_term () +void zmq::object_t::process_term (int linger_) { zmq_assert (false); } |