正常关闭ZMQ代理

时间:2015-06-22 10:10:09

标签: c++ proxy zeromq

我目前正在努力实现ZeroMQ XPUB / XSUB代理的正常关闭。 documentation表示仅终止ZMQ上下文会使zmq::proxy返回。但是,在我的情况下,这会产生SIGABRT。这是预期的行为,还是我做错了什么?

请注意,由于我使用较旧的ZMQ版本(4.0.4),因此我没有zmq_proxy_steerable

我的代码如下:

zmq::context_t c;
std::condition_variable cv;

std::thread t([&]() {
    zmq::socket_t xsub(c, ZMQ_XSUB);
    zmq::socket_t xpub(c, ZMQ_XPUB);
    xsub.bind("tcp://127.0.0.1:*");
    xpub.bind("tcp://127.0.0.1:*");
    cv.notify_all();
    zmq::proxy(xsub, xpub, NULL);
});

std::mutex m;
std::unique_lock<std::mutex> lk(m);
cv.wait(lk);

c.close();

有什么想法吗?

0 个答案:

没有答案