diff options
-rw-r--r-- | gr-zeromq/lib/base_impl.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gr-zeromq/lib/base_impl.cc b/gr-zeromq/lib/base_impl.cc index 5889490898..6b573211dd 100644 --- a/gr-zeromq/lib/base_impl.cc +++ b/gr-zeromq/lib/base_impl.cc @@ -16,6 +16,10 @@ #include "tag_headers.h" #include <gnuradio/io_signature.h> +namespace { +constexpr int LINGER_DEFAULT = 1000; // 1 second. +} + namespace gr { namespace zeromq { @@ -72,6 +76,9 @@ base_sink_impl::base_sink_impl(int type, #endif } + /* Set ZMQ_LINGER so socket won't infinitely block during teardown */ + d_socket.setsockopt(ZMQ_LINGER, &LINGER_DEFAULT, sizeof(LINGER_DEFAULT)); + /* Bind */ d_socket.bind(address); } @@ -143,6 +150,9 @@ base_source_impl::base_source_impl(int type, #endif } + /* Set ZMQ_LINGER so socket won't infinitely block during teardown */ + d_socket.setsockopt(ZMQ_LINGER, &LINGER_DEFAULT, sizeof(LINGER_DEFAULT)); + /* Connect */ d_socket.connect(address); } |