You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
686 B
C

#include "io.h"
#include "array.h"
#include "haveepoll.h"
#include "havekqueue.h"
typedef struct {
unsigned int wantread:1;
unsigned int wantwrite:1;
unsigned int canread:1;
unsigned int canwrite:1;
unsigned int nonblock:1;
unsigned int inuse:1;
tai6464 timeout;
long next_read;
long next_write;
void* cookie;
} io_entry;
array io_fds;
uint64 io_wanted_fds;
array io_pollfds;
unsigned long first_readable;
unsigned long first_writeable;
enum {
UNDECIDED,
POLL
#ifdef HAVE_KQUEUE
,KQUEUE
#endif
#ifdef HAVE_EPOLL
,EPOLL
#endif
} io_waitmode;
#if defined(HAVE_KQUEUE) || defined(HAVE_EPOLL)
int io_master;
#endif
int64 io_waituntil2(int64 milliseconds);