mirror of
https://github.com/zeromq/libzmq.git
synced 2025-10-27 19:10:22 +01:00
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>
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user