42 Commits (8d027b2a2be1e27556a801660bc357257331d31c)

Author SHA1 Message Date
leitner fc223dc725 recent kernel return POLLERR and then calling read returns EGAIN which
leads to busy loop. Try to work around.
3 years ago
leitner 853242b078 next attempt (I need a bsd shell) 4 years ago
leitner efb1a8a2ae kqueue path assumed EVFILT_READ and EVFILT_WRITE are bits that can be used with | and ~ and &
they aren't
4 years ago
leitner c4b0dd6b81 move cleanup after check that all events are handled 4 years ago
leitner 15f004df55 prevent infinite loop in cleanup code for
io_close-with-outstanding-events-queued race prevention
4 years ago
leitner 69c9d1454d port the epoll optimizations to kqueue, hopefully repairing it in the process 5 years ago
leitner 9d51f000ef silence another compiler warning 5 years ago
leitner bbaf63c7fd remove compiler warnings in ent
try to fix io_waituntil2 on freebsd
5 years ago
leitner 2a0bcc2fb6 implement deferred closing 8 years ago
leitner a1f1986247 include <foo> -> include "foo" 9 years ago
leitner 967e3ce019 revert edge triggering epoll; it had reliability and fairness issues and
was also not actually faster
10 years ago
leitner d9cbb3940c it turns out you don't need -1/EGAIN to know edge triggering told you
there is no more data, it's enough to read/write less than you asked for
11 years ago
leitner a544abc39c switch io_fds from array to newly implemented (hopefully thread-safe) iarray
switch epoll from level triggering to edge triggering
11 years ago
leitner ff3a3410ec hopefully this fixes the looping gatling processes 11 years ago
leitner e175800a8c add io_fd_canwrite (like io_fd but assume the fd is writable)
save a few syscalls here and there
13 years ago
leitner 1fcfcd268a hups 16 years ago
leitner 83c1186870 fix for NetBSD 3.0 (they broke their sys/types.h)
remove support for ip6.int reverse lookup in DNS routines (the domain is
no longer delegated)
19 years ago
leitner c1c50c7dbd further Windoze support (test/io5.c works, gatling still doesn't)
This is just to get gatling to work, I may remove it again after
    that.
19 years ago
leitner b1e8f341ba no debug 20 years ago
leitner 12caccfd48 don't shrink in array_allocate 20 years ago
leitner e1e80badf0 add some debug stuff 20 years ago
leitner 6fb76c3cd9 <io.h> -> <iob.h> 21 years ago
leitner adcb7aee21 handle POLLNVAL (can't happen errors) 21 years ago
sanjiyan a58d400d5c fixing the poll call in io_waituntil2 21 years ago
leitner a4cf7a8a8b fix Solaris /dev/poll 21 years ago
leitner 65adb024f5 bug fixing time 21 years ago
leitner 82a4ae868d broken lose32 port using mingw (don't use!!!)
initial Solaris /dev/poll port
21 years ago
leitner b81e8bcd27 typo 21 years ago
leitner 17f3955f84 handle BSD errors 21 years ago
leitner 361872ffa4 handle errors properly 21 years ago
leitner 96be549818 handle errors signalled by epoll 21 years ago
leitner 963fa817de guard against one descriptor being flagged twice 21 years ago
leitner eaa4dea67b correctly initialize records before reusing them in io_fd
do something about unexpected epoll events
21 years ago
leitner 29ae01d54f glibc compatibility ;) 21 years ago
leitner 3dd2a0344b damn! 21 years ago
leitner c64f721daf oops, typo 21 years ago
leitner 519b512cc3 kqueue does not like timeout==-1 but wants a NULL pointer to wait
indefinitely
21 years ago
leitner 2a2e1ddc75 add sigio support
extend code to cope with edge triggered event notification
add io_eagain() so that you can notify io_wait if accept() returned EAGAIN
22 years ago
leitner dc09a17215 fix 22 years ago
leitner b1a8110926 epoll now works enough for test/io5 22 years ago
leitner 325a6176ca write a small socket server with io_wait integration and add and debug
io framework enough to support the test program
22 years ago
leitner 8cd9323a1b add waituntil and waituntil2 (internal) 22 years ago