Новый пользователь zeromq здесь. У меня есть система PUB-SUB, и раньше она работала нормально. Я немного реорганизовал код, и приложение зависло при уничтожении контекста:
zmq_close(subscriberSocket);
zmq_ctx_destroy(context); // freezes here
Я закрыл subscriberSocket
, поэтому возможно, что он либо еще не закрыт, либо если есть еще один открытый сокет?
Я нашел это обсуждение , и оно предлагает установить ZMQ_LINGER
. Итак, я добавил эту строку перед созданием сокета:
int size = 0;
zmq_setsockopt(subscriberSocket, ZMQ_LINGER, &size, sizeof(int));
Однако, это все еще не работает.
Как я должен проверить, что происходит, например, проверить блокирующие сокеты, и заставить их закрыть?
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.