V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  kkkbbb  ›  全部回复第 8 页 / 共 16 页
回复总数  304
1  2  3  4  5  6  7  8  9  10 ... 16  
2023-07-13 14:06:00 +08:00
回复了 kkkbbb 创建的主题 程序员 有没有用 zeromq 遇到 zmq_poll 的时候出现 abort 的情况的?
@NoAnyLove 这个每次会重新赋值的
2023-07-13 11:07:55 +08:00
回复了 kkkbbb 创建的主题 程序员 有没有用 zeromq 遇到 zmq_poll 的时候出现 abort 的情况的?
@hankai17 代码 send 里的 socket 都是在内部封装的,没有暴露出来,没看出来哪里的问题
2023-07-13 10:49:22 +08:00
回复了 kkkbbb 创建的主题 程序员 有没有用 zeromq 遇到 zmq_poll 的时候出现 abort 的情况的?
@NoAnyLove 版本是 4.3.3 目前不是必现,所以不太清楚可能是什么问题
贴下 send 的代码,看了下没看出来那会提前 close socket:
void *cts_zmq_socket_connect(void *context, void * requester, const char* dest,short destory)
{
void *pSocket = NULL;
int optionVlalue = 0;
int result;
if(destory)
{
zmq_disconnect(requester, dest);
zmq_close(requester);
}
pSocket = zmq_socket(pContext, ZMQ_REQ);
if(NULL == pSocket) {
return NULL;
}

zmq_setsockopt(pSocket, ZMQ_LINGER, &optionVlalue, sizeof(int));

result = zmq_connect(pSocket, dest);
if(result < 0) {
zmq_close(pSocket);
return NULL;
}

return pSocket;
}

int cts_zmq_send(ZMQ_MSG *msg, const char* dest)
{
int result;
int expect_reply = 1;
int retries_left = REQUEST_RETRIES;

void *pSocket = NULL;
pSocket = cts_zmq_socket_connect(pContext, pSocket, dest, 0);
if(pSocket == NULL)
{
return -1;
}
msg->MessageSequence = cts_zmq_random_get(10000);
result = zmq_send(pSocket, msg, sizeof(*msg), 0);
if(result < 0) {
zmq_disconnect(pSocket, dest);
zmq_close(pSocket);
return -2;
}

while (expect_reply)
{
zmq_pollitem_t items[] = {{pSocket, 0, ZMQ_POLLIN, 0}};
int rc = zmq_poll(items, 1, REQUEST_TIMEOUT);
if (rc == -1) {
result = -3;
break;
}

if (items[0].revents & ZMQ_POLLIN) {
ZMQ_MSG recvMsg;

int rcv = zmq_recv(pSocket, &recvMsg, sizeof(recvMsg), 0);
if (rcv < 0) {
result = -4;
break;
} else {
retries_left = REQUEST_RETRIES;
expect_reply = 0;
if (recvMsg.MessageSequence == msg->MessageSequence) {
result = 0;
break;
} else {
result = -5;
break;
}
}
} else {
if (retries_left <= 0) {
retries_left = REQUEST_RETRIES;
result = -6;
break;
} else {
retries_left -=1;
pSocket = cts_zmq_socket_connect(pContext, pSocket, dest, 1);
if(pSocket == NULL)
{
return -7;
}
msg->MessageSequence = cts_zmq_random_get(10000);
zmq_send(pSocket, msg, sizeof(*msg), 0);
continue;
}
}
}

zmq_disconnect(pSocket, dest);
zmq_close(pSocket);

return result;
}
2023-07-12 13:45:14 +08:00
回复了 JitterChicken 创建的主题 程序员 Claude2.0 来了
@yqf0215 挂梯子可以用?我用 clash 选择美国的节点不行啊
2023-07-11 13:58:51 +08:00
回复了 thinkm 创建的主题 程序员 如何帮一个文科生女性用上 ChatGPT
对象?不是的话,学会拒绝。
2023-07-06 09:49:06 +08:00
回复了 MakHoCheung 创建的主题 程序员 还是 JetBrains 最懂程序员,新的记笔记方式
这是记笔记?这不就是 demo 调试
2023-07-05 18:47:44 +08:00
回复了 JustW 创建的主题 程序员 IDEA 推出的 AI 工具在国内如何使用?
@riddle4ever 请教下增强模式和不开的有啥区别?
2023-07-05 10:05:41 +08:00
回复了 JustW 创建的主题 程序员 IDEA 推出的 AI 工具在国内如何使用?
@leaves615 你是用的那个软件?我用 clash 的日志里面时延,流量都没有
![2023-07-05_095313.png]( https://s2.loli.net/2023/07/05/tH4JO3xXp1cuV79.png)
2023-06-28 16:36:53 +08:00
回复了 ggp1ot2 创建的主题 程序员 大家在办公室都泡什么茶喝?
放点泡腾片
2023-06-17 17:57:38 +08:00
回复了 OrdinaryMan 创建的主题 程序员 claude 不免费了,贴吧一片哀鸿
可以用没问题啊
@jzy321023 这个我也试了,但是暂停更新有时间限制,超过 35 天还会自动更新
@zy65334 不行,没用
@rophie123 可能是之前没有更新的补丁,一直提示更新。。。
@datocp 我也看到了,但我不是联想需要收费,不是说联想的电脑可以免费用么
@jeffw C 盘会越来越少,很多功能根本不需要也,重要的安全补丁需要就手动更新。
@zsj1029 我是家庭版的,最多可以暂停 35 天,会自动更新,很烦
@LxnChan 多谢,回头试下
1  2  3  4  5  6  7  8  9  10 ... 16  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2778 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 24ms · UTC 14:57 · PVG 22:57 · LAX 06:57 · JFK 09:57
Developed with CodeLauncher
♥ Do have faith in what you're doing.