Тайм-аут для redisGetReply

Могу ли я иметь тайм-аут для redisGetReply? Мой текущий код

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

В настоящее время, если я сигнализирую SIGINT к программе. В настоящее время, если я сигнал для SIGINT и этот поток в redisGetReply. Он будет ждать, пока не поступит какое-либо сообщение от сервера.

Как заставить redisGetReply остановиться на каком-нибудь сиганле или иметь тайм-аут для readreply?

1 ответ

Как вы можете видеть в этой ссылке

Пример тестирования 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);
Другие вопросы по тегам