summaryrefslogtreecommitdiff
path: root/src/anet.h
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2016-01-08 15:05:14 +0100
committerantirez <antirez@gmail.com>2016-04-04 08:50:58 +0200
commit67b70a18130bb22663494689b19db5b47cfed4fd (patch)
tree03ab95bc7f097dc2db65adf679d6b2969117a156 /src/anet.h
parent28c291c55c35b8acaedffbb7eb98b3fc175e1237 (diff)
downloadredis-67b70a18130bb22663494689b19db5b47cfed4fd.tar.gz
Fix ae.c to avoid timers infinite loop.
This fix was suggested by Anthony LaTorre, that provided also a good test case that was used to verify the fix. The problem with the old implementation is that, the time returned by a timer event (that is the time after it want to run again) is added to the event *start time*. So if the event takes, in order to run, more than the time it says it want to be scheduled again for running, an infinite loop is triggered.
Diffstat (limited to 'src/anet.h')
-rw-r--r--src/anet.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/anet.h b/src/anet.h
index 8740a95d0..7142f78d2 100644
--- a/src/anet.h
+++ b/src/anet.h
@@ -31,6 +31,8 @@
#ifndef ANET_H
#define ANET_H
+#include <sys/types.h>
+
#define ANET_OK 0
#define ANET_ERR -1
#define ANET_ERR_LEN 256