Mirror of :pserver:cvs@cvs.fefe.de:/cvs libowfat https://www.fefe.de/libowfat/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

40 lines
670 B

#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;
} 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);