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 |
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 |