the #define extern hack in io_fd.c also included time.h, fix that
catch case in timeout loop where we have something to report on an fd; in that case do not report a timeout but let the other event get through first.
This commit is contained in:
parent
49e8257931
commit
51202765fe
@ -1,8 +1,8 @@
|
||||
#define _GNU_SOURCE
|
||||
#include <errno.h>
|
||||
#define extern
|
||||
#define my_extern
|
||||
#include "io_internal.h"
|
||||
#undef extern
|
||||
#undef my_extern
|
||||
#include "byte.h"
|
||||
#ifdef HAVE_SIGIO
|
||||
#include <signal.h>
|
||||
|
@ -11,8 +11,12 @@ int64 io_timeouted() {
|
||||
e=array_get(&io_fds,sizeof(io_entry),ptr);
|
||||
if (!e) return -1;
|
||||
for (;ptr<alen; ++ptr,++e) {
|
||||
if (e->inuse && e->timeout.sec.x && taia_less(&e->timeout,&now))
|
||||
if (e->inuse && e->timeout.sec.x && taia_less(&e->timeout,&now)) {
|
||||
/* we have a timeout */
|
||||
if ((e->canread&&e->wantread) || (e->canwrite&&e->wantwrite))
|
||||
continue; /* don't count it if we can signal something else */
|
||||
return ptr;
|
||||
}
|
||||
}
|
||||
ptr=-1; /* this is for really pathological cases, where more
|
||||
connections come in all the time and so the timeout
|
||||
|
@ -1,3 +1,8 @@
|
||||
#ifndef my_extern
|
||||
#define my_extern extern
|
||||
#endif
|
||||
#undef my_extern
|
||||
|
||||
#include "io.h"
|
||||
#include "array.h"
|
||||
#ifdef __MINGW32__
|
||||
|
Loading…
x
Reference in New Issue
Block a user