Also, time is always set to 0 for the setsockopt ZMQ_LINGER call, which
would cause immediate shutdown of the socket. This is not related to
timeout, which is used as the polling timeout.

On Mon, Aug 10, 2020 at 7:06 PM Jeff Long <willco...@gmail.com> wrote:

> 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
>>
>>

Reply via email to