[zeromq-dev] Terminating before receiving reply on ZMQ_REQ?

Andrei Zmievski andrei at zmievski.org
Tue Jun 19 19:25:23 CEST 2012


> Could you post up the snippet of code that demonstrates the issue? One
> thing to check: is LINGER set after the connection is made - it must be set
> before a given connection to effect it. (so setsockopt(), connect(), rather
> than connect(), setsockopt()).
>
> Ian

Not sure there's much to post. Here's how I create the socket:

    int linger = 0;
    int64_t hwm = 1;

    socket = new zmq::socket_t(*AG(zmq_ctx), ZMQ_REQ);
    socket->setsockopt(ZMQ_LINGER, &linger, sizeof(int));
    socket->setsockopt(ZMQ_HWM, &hwm, sizeof(int64_t));

    try {
        socket->connect(CONFIG_ENDPOINT);
    } catch (zmq::error_t e) {
        LOG_INFO(logger, "exception when connecting the socket: " << e.what());
        return false;
    };

After that I just use s_send() helper macro to send the message. But
as I said, if I try to terminate the process before trying to receive
the reply, it blocks for some time.

-Andrei



More information about the zeromq-dev mailing list