小编Kev*_*vin的帖子

jeromq:关闭上下文失败

编辑:解决了自己,见下文(虽然我不确定我是否偶然发现了一个错误)

使用下面的简单hello-world请求 - 回复示例,在程序结束时关闭上下文失败:它只是挂起ctx.close()或者抛出以下异常:

Exception in thread "reaper-1" java.lang.NullPointerException
    at zmq.Ctx.destroy_socket(Ctx.java:327)
    at zmq.ZObject.destroy_socket(ZObject.java:144)
    at zmq.SocketBase.check_destroy(SocketBase.java:938)
    at zmq.SocketBase.start_reaping(SocketBase.java:753)
    at zmq.Reaper.process_reap(Reaper.java:133)
    at zmq.ZObject.process_command(ZObject.java:114)
    at zmq.Reaper.in_event(Reaper.java:90)
    at zmq.Poller.run(Poller.java:233)
    at java.lang.Thread.run(Thread.java:724)
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,程序都不会停止.

这是代码(请注意,套接字在创建它们的线程中都是关闭的):

import org.zeromq.ZMQ;
import org.zeromq.ZContext;

public class App {
    public static void main(String[] args) throws InterruptedException {
        final ZContext ctx = new ZContext();

        final Thread t1 = new Thread() {
            @Override
            public void run() {
                ZMQ.Socket socket = ctx.createSocket(ZMQ.REQ);
                socket.connect("inproc://test");
                System.err.format("[Thread %s] socket connected%n", Thread.currentThread().getId());
                socket.send("hello");
                System.err.format("[Thread %s] …
Run Code Online (Sandbox Code Playgroud)

java zeromq jeromq

7
推荐指数
1
解决办法
2220
查看次数

标签 统计

java ×1

jeromq ×1

zeromq ×1