214 Commits (c2e3bd9dae754ab3dba5a717939dd688ac9ad183)

Author SHA1 Message Date
Felix von Leitner c2e3bd9dae change io_eagain to io_eagain_wite 11 months ago
Felix von Leitner ba876e757c recent kernel return POLLERR and then calling read returns EGAIN which
leads to busy loop. Try to work around.
1 year ago
Felix von Leitner ccdae48d82 try to prevent ARM from reordering writes in hardware 1 year ago
Felix von Leitner a16f238d80 next attempt (I need a bsd shell) 2 years ago
Felix von Leitner 714a06fcb7 kqueue path assumed EVFILT_READ and EVFILT_WRITE are bits that can be used with | and ~ and &
they aren't
2 years ago
Felix von Leitner 0c8b9934d2 provide prototype 2 years ago
Felix von Leitner 0c4c4efbe0 try too fix erdgeist's bug 2 years ago
Felix von Leitner a246f90de5 try to fix erdgeist's bug 2 years ago
Felix von Leitner 52d9cfa681 in io_eagain, make sure the kernel knows we wanted to write to the
descriptor in case we optimized the syscall away previously
in iob_send leave loop if we got a partial write
2 years ago
Felix von Leitner b5f0721298 fix out of bounds memory access 2 years ago
Felix von Leitner b148d97cad limit iovec size for sendmsg code path to 50 2 years ago
Felix von Leitner 3e7158a2fc add missing includes 2 years ago
Felix von Leitner b21da7cf70 add support for saving syscalls with accept4 2 years ago
Felix von Leitner 9e831fe414 move cleanup after check that all events are handled 2 years ago
Felix von Leitner 874530bace prevent infinite loop in cleanup code for
io_close-with-outstanding-events-queued race prevention
2 years ago
Felix von Leitner d342fa80e2 properly initialize deferred list in io_fd (did not help though) 2 years ago
Felix von Leitner 9f9b777fab add snarky comment 2 years ago
Felix von Leitner ce92de14c0 might actually work now 2 years ago
Felix von Leitner 5420136c6b attempt to prevent future endless loops in io_wait half-closed fd
cleanup
2 years ago
Felix von Leitner a10f89d5f3 add compiler.h to abstract gcc attributes 2 years ago
Felix von Leitner a2081362bb port the epoll optimizations to kqueue, hopefully repairing it in the process 3 years ago
Felix von Leitner 8ada277583 silence another compiler warning 3 years ago
Felix von Leitner 798848ec05 remove compiler warnings in ent
try to fix io_waituntil2 on freebsd
3 years ago
Felix von Leitner 3262a8dbf6 some old glibc may define MSG_ZEROCOPY but not SO_ZEROCOPY :-( 3 years ago
Felix von Leitner 600d51d5ac bsd fix 4 years ago
Felix von Leitner 43983c9b52 BSD build fix (hopefully)
move more #include to <libowfat/...>
4 years ago
Felix von Leitner 7bfadf4dea add stralloc_APPEND
use atomic updates for iom->working
5 years ago
Felix von Leitner 22408afb0e add experimental iom API for multithreaded I/O multiplexing (in io.h) 5 years ago
Felix von Leitner 49dea92f85 use write in buffer_put for a slight perf improvement 5 years ago
Felix von Leitner 0073f743db compile if MSG_ZEROCOPY is not defined by libc 5 years ago
Felix von Leitner 84436cb2c6 add MSG_ZEROCOPY support (only used for buffers >8k) 5 years ago
Felix von Leitner d6674f6d8e #include <foo.h> -> #include <libowfat/foo.h> 6 years ago
Felix von Leitner 6dcb99f00e some more eagain handling in tryread and trywrite
cosmetic change
6 years ago
Felix von Leitner 2090fd630c "fmt.h" instead of <fmt.h> 7 years ago
Felix von Leitner 35f10a2f72 remove OpenBSD #warning (obsd maintainer says no longer needed) 7 years ago
Felix von Leitner d13e2036ff implement deferred closing 7 years ago
Felix von Leitner 1d253fb3fa reengineer alt queue handling to prevent race 7 years ago
Felix von Leitner b6a91f4256 attempt to work around race condition when you close an fd but there are
still outstanding events queued on it.
7 years ago
Felix von Leitner 91640b5f51 document race condition caused by queueing of multiple events 7 years ago
Felix von Leitner 8853a842f1 test for pread and use it instead of lseek+read in cdb and io_mmapwritefile 7 years ago
Felix von Leitner 81c4d3787d include <foo> -> include "foo" 7 years ago
Felix von Leitner ea849e7ebf a few missing headers and minor fixes
fix corking behavior for the case where a buffer follows a buffer in
iob_send
8 years ago
Felix von Leitner 247b2175c4 remove dead store 8 years ago
Felix von Leitner 8640df0e04 hopefully fix the infinite loop in gatling 9 years ago
Felix von Leitner a606013ffd remove compiler warning 9 years ago
Felix von Leitner 1c9d7b0b30 add io_fd_flags so the caller can tell io_fd whether the socket is blocking
(saves one fcntl syscall)
9 years ago
Felix von Leitner 62ec3d9b67 on Linux, save a few syscalls by using sendto/sendmsg with MSG_MORE
instead of write/writev + setsockopt TCP_CORK
9 years ago
Felix von Leitner aedf1016c1 revert to level triggering for epoll (forgot io_wantread) 9 years ago
Felix von Leitner 1de8f45d8a revert edge triggering epoll; it had reliability and fairness issues and
was also not actually faster
9 years ago
Felix von Leitner d8da202a8b introduce io_eagain_read and io_eagain_write (discontinue using io_eagain plz) 9 years ago