Date: Sat, 13 Jan 2024 21:50:58 -0300 From: =?UTF-8?Q?Vin=C3=ADcius_dos_Santos_Oliveira?= <vini.ipsmaker@gmail.com> To: Konstantin Belousov <kostikbel@gmail.com> Cc: Alan Somers <asomers@freebsd.org>, freebsd-threads@freebsd.org, Konstantin Belousov <kib@freebsd.org> Subject: Re: aio_read2() and aio_write2() Message-ID: <CAK9Rve%2BuYpxWyRPwh6gxjRkisU7WPKjXicU9%2BYiqFG-=c3trvg@mail.gmail.com> In-Reply-To: <ZaMsUn8xFKrDkJb_@kib.kiev.ua> References: <CAOtMX2haq%2BErvqD2PDYKUGRgdCrk2SDjtoPL-W5jR8q8_4denA@mail.gmail.com> <CAK9RveJLK9uU0twM%2BKznUNnUnsqzwoqidPN8dzNptMQ50Z7r1Q@mail.gmail.com> <CAOtMX2ijQ=KsccMyqH-yAn6SJPR7MD_yy6CF0R2vNrQ-fhUq2Q@mail.gmail.com> <ZaMsUn8xFKrDkJb_@kib.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
Em s=C3=A1b., 13 de jan. de 2024 =C3=A0s 21:35, Konstantin Belousov <kostikbel@gmail.com> escreveu: > In principle the function of the new flag could be done like > aio.aio_offset =3D lseek(fd, 0, SEEK_CUR); > aio_read(&aio); > with the dis-advantage of requiring two syscalls instead of one. There are more disadvantages besides the extra syscall. I've built a green threading framework for Lua on top of Boost.Asio. However I also added support for sandboxed actors (capsicum and jails on FreeBSD). For file descriptors received through SCM_RIGHTS from sandboxed processes, I really don't want to risk blocking the thread (DoS) going through O_NONBLOCK (file IO is always ready, and that's why AIO exists). So, for these file descriptors (one can never know their "type"... whether they refer to pipes and O_NONBLOCK is enough, or they refer to files and AIO should be used), I'll use AIO as well. On Linux I can get away by just using io_uring for everything. Anyway, that's *another* use case. Other applications built on top of Boost.Asio have their own reasoning for choosing between the streaming/random_access interfaces. And they already work on Linux and Windows. --=20 Vin=C3=ADcius dos Santos Oliveira https://vinipsmaker.github.io/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAK9Rve%2BuYpxWyRPwh6gxjRkisU7WPKjXicU9%2BYiqFG-=c3trvg>