Хочется обслужвать несколько TCP (SOCK_STREAM) соединений в одном процессе/нити под FreeBSD. Со чтением все понятно - если O_NONBLOCK, то всегда буду читать из буфера и ничего во время read() ждать не буду. А вот с записью не понял. В случае O_NONBLOCK, write мне вернет управление сразу или же возможен вариант, что я буду ждать, пока от удаленного хоста ACK не прибежит?Насколько я знаю, для Linux aio_write для socket асинхронно работать не будет. А как для BSD?
П-ц. Это asynchronous i/o не будет работать асинхронно? Подумайте хоть чуть-чуть, прежде чем такое спросить.
>П-ц. Это asynchronous i/o не будет работать асинхронно? Подумайте хоть чуть-чуть, прежде
>чем такое спросить.Я же не от балды написал:
http://lse.sourceforge.net/io/aio.htmlЦитирую:
AIO read and write on sockets (doesn't return an explicit error, but quietly defaults to synchronous or rather non-AIO behavior)
>Цитирую:
>AIO read and write on sockets (doesn't return an explicit error, but
>quietly defaults to synchronous or rather non-AIO behavior)Мда, Linux is so broken... Во FreeBSD ничего подобного, разумеется, нет.
ни в линуксе ни во фре на неблокируемых сокетах ждать АКА не надо - это и есть отличие блокируемых от неблакируемых.
>ни в линуксе ни во фре на неблокируемых сокетах ждать АКА не
>надо - это и есть отличие блокируемых от неблакируемых.Спасибо! Это ответ по сути. Следовательно, для сокетов смысла в aio_* функциях просто нет.