ae.c: set errno when error is not a failing syscall.

In this way the caller is able to perform better error checking or to
use strerror() without the risk of meaningless error messages being
displayed.
This commit is contained in:
antirez 2013-01-03 14:18:03 +01:00
parent 4dc1e0dd30
commit e9261b1e2d

View File

@ -38,6 +38,7 @@
#include <poll.h> #include <poll.h>
#include <string.h> #include <string.h>
#include <time.h> #include <time.h>
#include <errno.h>
#include "ae.h" #include "ae.h"
#include "zmalloc.h" #include "zmalloc.h"
@ -104,7 +105,10 @@ void aeStop(aeEventLoop *eventLoop) {
int aeCreateFileEvent(aeEventLoop *eventLoop, int fd, int mask, int aeCreateFileEvent(aeEventLoop *eventLoop, int fd, int mask,
aeFileProc *proc, void *clientData) aeFileProc *proc, void *clientData)
{ {
if (fd >= eventLoop->setsize) return AE_ERR; if (fd >= eventLoop->setsize) {
errno = ERANGE;
return AE_ERR;
}
aeFileEvent *fe = &eventLoop->events[fd]; aeFileEvent *fe = &eventLoop->events[fd];
if (aeApiAddEvent(eventLoop, fd, mask) == -1) if (aeApiAddEvent(eventLoop, fd, mask) == -1)