195 Commits (75fe9a620e8abf67a5dd18a5f92b9e92087d93c8)

Author SHA1 Message Date
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
leitner 193dfba16b remove compiler warning 10 years ago
leitner 4fa4a524d2 add io_fd_flags so the caller can tell io_fd whether the socket is blocking
(saves one fcntl syscall)
10 years ago
leitner 953eb639b2 on Linux, save a few syscalls by using sendto/sendmsg with MSG_MORE
instead of write/writev + setsockopt TCP_CORK
10 years ago
leitner 4404ab35f3 revert to level triggering for epoll (forgot io_wantread) 10 years ago
leitner 967e3ce019 revert edge triggering epoll; it had reliability and fairness issues and
was also not actually faster
10 years ago
leitner 39e7ee90bb introduce io_eagain_read and io_eagain_write (discontinue using io_eagain plz) 11 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 5baf943f0a finish epoll move to edge triggering 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 6e6fc8b85d fix endless loop bug on freebsd 13 years ago
leitner c2a2a15c12 document the return value expected from the callback given to iob_write
remove unused #include in iob_reset
if iob_addfile_close fails, it now closes the fd
if iob_addbuf_munmap fails, it now munmaps the buf
if iob_addbuf_free fails, it now frees the buf
some win32 cross-compile fixes for iarray
13 years ago
leitner 662cf55fc9 accept -3 as error return from the callback, too 13 years ago
leitner b0886bc324 the iob calls return int, not void 13 years ago
leitner d2aae4864c only try to receive one byte to avoid discarding data 14 years ago
leitner 3bed09a972 get rid of warning 15 years ago
leitner acd4fdb68b add/fix man pages
zero a buffer in io_passfd so valgrind does not complain when we pass it
to a syscall (which did not use the uninitialized parts anyway)
15 years ago
leitner 1fcfcd268a hups 16 years ago
leitner 51202765fe the #define extern hack in io_fd.c also included time.h, fix that
catch case in timeout loop where we have something to report on an fd;
in that case do not report a timeout but let the other event get through
first.
16 years ago
leitner fd47173110 remove four warnings 16 years ago
leitner a8a5e9a3d5 some valgrind de-noising
fix subtle typo in sub_of (David Sirovsky)
17 years ago
leitner 68d88f60b9 munmap cleanup fix (Erdgeist) 17 years ago
leitner 8b17690318 use callback based infrastructure to reset iob's 17 years ago