2

redisGetReply 可以超时吗?我目前的代码是

 while(redisGetReply(context,&reply) == REDIS_OK) {
        //Check for isstopped 
         if yes return    
        // consume message
        freeReplyObject(reply);
    }

目前,如果我向程序发出 SIGINT 信号。目前,如果我在 redisGetReply 中向 SIGINT 和这个线程发出信号。它将等到有来自服务器的任何消息。

如何使 redisGetReply 在某些信号上停止或 readreply 超时?

4

1 回答 1

0

正如您在此链接中看到的

测试hiredis示例

您可以在调用 redisGetReply 之前设置超时

struct timeval tv = { 0, 1000 };
assert(redisSetTimeout(c,tv) == REDIS_OK);
test_cond(redisGetReply(c,&_reply) == REDIS_ERR &&
        c->err == REDIS_ERR_IO && errno == EAGAIN);
redisFree(c);
于 2014-02-20T09:35:07.233 回答