At socket shutdown, LINGER determines how long close(2) or shutdown(2) will block waiting for queue messages to be sent. See man socket(7).
On Mon, Aug 10, 2020 at 7:00 PM Cameron Matson <ncmatso...@gmail.com> wrote: > Hi all, > > Can someone help me understand what's going on with any of the ZMQ Message > Sink blocks? The block takes a timeout parameter which is assigned to > d_timeout, but ultimately it looks like the zmq.LINGER option (which I > believe is how long zmq will block before dropping the frame) is always set > to a different variable, time, which is initialized in the constructor to > be 0 that is used for the setsockopt call. > > if (major < 3) { > d_timeout = timeout * 1000; > } > d_context = new zmq::context_t(1); > d_socket = new zmq::socket_t(*d_context, ZMQ_REP); > int time = 0; > d_socket->setsockopt(ZMQ_LINGER, &time, sizeof(time)); > Am I missing something? > > Thanks, > Cameron > >