diff --git a/io/io_canread.c b/io/io_canread.c new file mode 100644 index 0000000..9ecdc3c --- /dev/null +++ b/io/io_canread.c @@ -0,0 +1,17 @@ +#include +#include +#include +#include +#include "io_internal.h" + +int64 io_canread() { + io_entry* e; + if (first_readable==-1) return -1; + e=array_get(&io_fds,sizeof(io_entry),first_readable); + if (e && e->canread) { + int64 r=first_readable; + first_readable=e->next_read; + return r; + } + return -1; +} diff --git a/io/io_canwrite.c b/io/io_canwrite.c new file mode 100644 index 0000000..9a9c2a7 --- /dev/null +++ b/io/io_canwrite.c @@ -0,0 +1,17 @@ +#include +#include +#include +#include +#include "io_internal.h" + +int64 io_canwrite() { + io_entry* e; + if (first_writeable==-1) return -1; + e=array_get(&io_fds,sizeof(io_entry),first_writeable); + if (e && e->canwrite) { + int64 r=first_writeable; + first_writeable=e->next_write; + return r; + } + return -1; +}