我正在使用hiredis开发多进程应用程序。所有进程完成后,最后一个进程不会从 redisGetReply()进行回复。我在stackoverflow中搜索了此问题,但没有找到。我的示例代码块如下;
redisReply *reply = NULL;
redisContext *context;
redisAppendCommand (context, "RPUSH BLABLA 1");
redisAppendCommand (context, "EXEC");
int i = 2;
while (i--)
{
redisGetReply (context, (void **) &reply);
if (!reply || reply->type == REDIS_REPLY_ERROR)
return -1;
if (reply)
freeReplyObject (reply);
}
当我检查gdb的进程时,gdb指向 redisBufferRead()函数。 https://github.com/redis/hiredis/blob/master/hiredis.c#L941
进程正在等待此功能。 谢谢。