summaryrefslogtreecommitdiff
path: root/async_private.h
diff options
context:
space:
mode:
Diffstat (limited to 'async_private.h')
-rw-r--r--async_private.h18
1 files changed, 11 insertions, 7 deletions
diff --git a/async_private.h b/async_private.h
index e4a22ab..b9d23ff 100644
--- a/async_private.h
+++ b/async_private.h
@@ -54,14 +54,18 @@
} while(0);
static inline void refreshTimeout(redisAsyncContext *ctx) {
- if (!(ctx->c.flags & REDIS_CONNECTED)) {
- if (ctx->c.connect_timeout && ctx->ev.scheduleTimer &&
- (ctx->c.connect_timeout->tv_sec || ctx->c.connect_timeout->tv_usec)) {
- ctx->ev.scheduleTimer(ctx->ev.data, *ctx->c.connect_timeout);
+ #define REDIS_TIMER_ISSET(tvp) \
+ (tvp && ((tvp)->tv_sec || (tvp)->tv_usec))
+
+ #define REDIS_EL_TIMER(ac, tvp) \
+ if ((ac)->ev.scheduleTimer && REDIS_TIMER_ISSET(tvp)) { \
+ (ac)->ev.scheduleTimer((ac)->ev.data, *(tvp)); \
}
- } else if (ctx->c.command_timeout && ctx->ev.scheduleTimer &&
- (ctx->c.command_timeout->tv_sec || ctx->c.command_timeout->tv_usec)) {
- ctx->ev.scheduleTimer(ctx->ev.data, *ctx->c.command_timeout);
+
+ if (ctx->c.flags & REDIS_CONNECTED) {
+ REDIS_EL_TIMER(ctx, ctx->c.command_timeout);
+ } else {
+ REDIS_EL_TIMER(ctx, ctx->c.connect_timeout);
}
}