219 Commits (80328bccf9df96d0814902e145d49911182a110a)

Author SHA1 Message Date
leitner 80328bccf9 return early 1 year ago
leitner 444c36f3e8 silence clang static analyzer 2 years ago
leitner 4422ec3770 gcc 13 -fanalyze run with fixes / comments about false positives 2 years ago
leitner ee44f1a430 #define _POSIX_C_SOURCE 200809L 2 years ago
leitner 00bc4e4a5d add iob_write2 which takes an additional sendfile callback 2 years ago
leitner fe1cb50ec1 remove unused local var 3 years ago
leitner 1564beb8a3 change io_eagain to io_eagain_wite 3 years ago
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 0556994916 try to prevent ARM from reordering writes in hardware 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 2788b18f32 provide prototype 4 years ago
leitner cef53a5907 try too fix erdgeist's bug 4 years ago
leitner 1a793700a8 try to fix erdgeist's bug 4 years ago
leitner 45f99bbd0a 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
4 years ago
leitner f4cd377378 fix out of bounds memory access 4 years ago
leitner 86e596b870 limit iovec size for sendmsg code path to 50 4 years ago
leitner 1fb5505cc2 add missing includes 4 years ago
leitner b5f21a3900 add support for saving syscalls with accept4 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 5f9f1a2a62 properly initialize deferred list in io_fd (did not help though) 4 years ago
leitner ad37bd83de add snarky comment 4 years ago
leitner d4ac8fe906 might actually work now 4 years ago
leitner 75fe9a620e attempt to prevent future endless loops in io_wait half-closed fd
cleanup
4 years ago
leitner ddfdd4d077 add compiler.h to abstract gcc attributes 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 8b0450cd29 some old glibc may define MSG_ZEROCOPY but not SO_ZEROCOPY :-( 5 years ago
leitner 278a675a69 bsd fix 6 years ago
leitner 97368fbfa6 BSD build fix (hopefully)
move more #include to <libowfat/...>
6 years ago
leitner 3873bab74b add stralloc_APPEND
use atomic updates for iom->working
7 years ago
leitner ce595ae0cc add experimental iom API for multithreaded I/O multiplexing (in io.h) 7 years ago
leitner 94feba3667 use write in buffer_put for a slight perf improvement 7 years ago
leitner e4a2f4d068 compile if MSG_ZEROCOPY is not defined by libc 7 years ago
leitner f8c4132df0 add MSG_ZEROCOPY support (only used for buffers >8k) 7 years ago
leitner 760598ec2f #include <foo.h> -> #include <libowfat/foo.h> 8 years ago
leitner c29096b2e0 some more eagain handling in tryread and trywrite
cosmetic change
8 years ago
leitner d862c9e482 "fmt.h" instead of <fmt.h> 8 years ago
leitner b4c4eb607e remove OpenBSD #warning (obsd maintainer says no longer needed) 8 years ago
leitner 2a0bcc2fb6 implement deferred closing 8 years ago
leitner b73a699dab reengineer alt queue handling to prevent race 8 years ago
leitner f9570b38a1 attempt to work around race condition when you close an fd but there are
still outstanding events queued on it.
8 years ago
leitner 8913f6174c document race condition caused by queueing of multiple events 8 years ago
leitner 137b80ea74 test for pread and use it instead of lseek+read in cdb and io_mmapwritefile 9 years ago
leitner a1f1986247 include <foo> -> include "foo" 9 years ago
leitner 7bdc1b29bb a few missing headers and minor fixes
fix corking behavior for the case where a buffer follows a buffer in
iob_send
9 years ago
leitner fce165fdcb remove dead store 10 years ago
leitner c60c2425ce hopefully fix the infinite loop in gatling 10 years ago