Commit ee982f40 authored by antirez's avatar antirez
Browse files

Modules Timer API: Wait at least 1 ms per iteration. Convert to ms.

parent 4c11bc6c
...@@ -4076,13 +4076,14 @@ int moduleTimerHandler(struct aeEventLoop *eventLoop, long long id, void *client ...@@ -4076,13 +4076,14 @@ int moduleTimerHandler(struct aeEventLoop *eventLoop, long long id, void *client
raxRemove(Timers,(unsigned char*)ri.key,ri.key_len,NULL); raxRemove(Timers,(unsigned char*)ri.key,ri.key_len,NULL);
zfree(timer); zfree(timer);
} else { } else {
next_period = expiretime-now; next_period = (expiretime-now)/1000; /* Scale to milliseconds. */
break; break;
} }
} }
raxStop(&ri); raxStop(&ri);
/* Reschedule the next timer or cancel it. */ /* Reschedule the next timer or cancel it. */
if (next_period <= 0) next_period = 1;
return (raxSize(Timers) > 0) ? next_period : AE_NOMORE; return (raxSize(Timers) > 0) ? next_period : AE_NOMORE;
} }
...@@ -4160,7 +4161,7 @@ int RM_GetTimerInfo(RedisModuleCtx *ctx, RedisModuleTimerID id, uint64_t *remain ...@@ -4160,7 +4161,7 @@ int RM_GetTimerInfo(RedisModuleCtx *ctx, RedisModuleTimerID id, uint64_t *remain
if (remaining) { if (remaining) {
int64_t rem = ntohu64(id)-ustime(); int64_t rem = ntohu64(id)-ustime();
if (rem < 0) rem = 0; if (rem < 0) rem = 0;
*remaining = rem; *remaining = rem/1000; /* Scale to milliseconds. */
} }
if (data) *data = timer->data; if (data) *data = timer->data;
return REDISMODULE_OK; return REDISMODULE_OK;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment